artykuły

Jak rysować za pomocą procedury?

2008-02-29
19:06:00
Avatar
Wirus
Data publikacji:
20:06, 29 February 2008
Witam! Chciałby dowiedzieć się jak stworzyć kreator grafiki. Np.: Narysuj kwadrat o bokach : ............... . Wie ktoś może jak to zrobić?
Avatar
Lukas
Strona domowa
Data publikacji:
9:54, 1 March 2008
Cześć Witam, nie wiem czy dokładnie o to Ci chodzi, ale z rysowaniem w Delphi wiąże się pojęcie płótna (Canvas). Za jego pomocą dokonujemy wszelkich sztuczek graficznych. Musisz pamiętać, że jego elementy (Pen oraz Brush) zawsze oznaczają (odpowiednio) właściwości krawędzi (Pen) i właściwości wypełnienia (Brush). Mały przykład: Postaw na formie przycisk, kliknij na niego dwukrotnie i w nowo-wygenerowanej procedurze wpisz: var x,y,szerokosc,wysokosc: integer; begin Canvas.Brush.Color := clRed; // Czerwone wnętrze Canvas.Pen.Color := clBlue; // Niebieskie obramowanie szerokosc := 200; // szerokość prostokąta wysokosc := 200; // wysokosść prostokąta x := 10; // pozycja w poziomie naszego prostokąta y := 10; // pozycja w pionie naszego prostokąta Canvas.Rectangle(x,y,x+szerokosc,y+wysokosc); // Rysuj prostokąt Można robić ciekawe rzeczy, przykładowo: wpisać okrąg w kwadrat: var x,y,szerokosc,wysokosc: integer; begin Canvas.Brush.Color := clRed; // Czerwone wnętrze Canvas.Pen.Color := clBlue; // Niebieskie obramowanie szerokosc := 200; // szerokość prostokąta wysokosc := 200; // wysokosść prostokąta x := 10; // pozycja w poziomie naszego prostokąta y := 10; // pozycja w pionie naszego prostokąta Canvas.Rectangle(x,y,x+szerokosc,y+wysokosc); // Rysuj prostokąt Canvas.Brush.Color := clYellow; // Żółte wnętrze Canvas.Pen.Color := clBlack; // Czarne obramowanie Canvas.Ellipse(x,y,x+szerokosc,y+wysokosc); // Rysuj elipse Pozdrawiam!
Avatar
Lukas
Strona domowa
Data publikacji:
10:08, 1 March 2008
Jeszcze wpadłem na jeden pomysł - mianowicie animacja: var x,y,szerokosc,wysokosc: integer; bitmapa : TBitmap; begin bitmapa := TBitmap.Create; // tworzymy obiekt bitmapy bitmapa.Width := 500; // szerokość tworzonej w pamięci bitmapy bitmapa.Height := 500; // wysokość tworzonej w pamięci bitmapy szerokosc := 200; // szerokość prostokąta wysokosc := 200; // wysokosść prostokąta // x := 10; // pozycja w poziomie naszego prostokąta y := 10; // pozycja w pionie naszego prostokąta for x:=10 To 100 Do // przesuń kwadrat w poziomie od x=10 do x=100 begin // Usuwamy wszystko z bitmapy przed kolejną klatką filmu (jeśli tego nie zrobimy kolejne klatki filmu będą się nakładać) bitmapa.Canvas.Brush.Color := clWhite; // ustaw kolor pióra (Pen - krawędzie) na biały bitmapa.Canvas.Pen.Color := clWhite; // ustaw kolor pędzla (Brush - wypełnienie) na biały bitmapa.Canvas.FillRect(Rect(0,0,bitmapa.Width,bitmapa.Height)); // usuń wszystko z bitmapy (wypełnia całą bitmapę kolorem określonym w Brush (wypełnienie) i Pen (krawędzie) ) // Rysujemy kwadrat bitmapa.Canvas.Brush.Color := clRed; // Czerwone wnętrze bitmapa.Canvas.Pen.Color := clBlue; // Niebieskie obramowanie bitmapa.Canvas.Rectangle(x,y,x+szerokosc,y+wysokosc); // Rysuj prostokąt bitmapa.Canvas.Brush.Color := clYellow; // Żółte wnętrze Sleep(10); // czekaj 10 milisekund (bez tej instrukcji całość zaszłaby niezauważalnie szybko) canvas.Draw(0,0,bitmapa); // wyświetlenie bitmapy na płótnie formularza end; bitmapa.Free; // zwolnienie bitmapy pamięciowej (obraz jest już narysowany na płótnie formularza więc jest niepotrzebna) Pozdrawiam!




Zaloguj się aby dodać post.
Dexter