Canvas Platno za crtanje Canvas platno za crtanje

  • Slides: 27
Download presentation
Canvas Platno za crtanje

Canvas Platno za crtanje

Canvas – platno za crtanje � svojstvo Canvas (platno) predstavlja oblast komponente � crtanje

Canvas – platno za crtanje � svojstvo Canvas (platno) predstavlja oblast komponente � crtanje � prikazivanje gotovih crteža ili slika � podsvojstva: pen (pero) i brush (četka)

Canvas – platno za crtanje � pravougaona mreža piksela � položaj piksela, horizontalna (x),

Canvas – platno za crtanje � pravougaona mreža piksela � položaj piksela, horizontalna (x), vertikalna (y) koordinata � početak koordinatnog sistema platna gornji levi ugao (0, 0) � Koordinate piksela u donjem desnom uglu su (Client. Width-1, Client. Height-1)

Canvas – platno za crtanje �O platnu treba razmišljati kao o “površini” po kojoj

Canvas – platno za crtanje �O platnu treba razmišljati kao o “površini” po kojoj aplikacija crta grafiku i tekst � Jedan od načina crtanja je bojenjem piksela � Canvas. Pixels[10, 20]: =cl. Black; � Pixels - dvodimenzionalni niz; kada se kreira forma elementi niza se inicijalizuju bojom forme

Canvas – platno za crtanje � function. RGB(R: Byte, G: Byte, B: Byte): longint

Canvas – platno za crtanje � function. RGB(R: Byte, G: Byte, B: Byte): longint � RGB(255, 0, 0) zadaje crvenu boju � RGB(0, 255, 0) zadaje zelenu boju � RGB(0, 0, 255) zadaje plavu boju

Canvas – platno za crtanje Primer 1: � Napisati aplikaciju kojom se 10000 slučajno

Canvas – platno za crtanje Primer 1: � Napisati aplikaciju kojom se 10000 slučajno izabranih piksela pravougaone oblasti forme – čiji je gornji levi ugao (0, 0) a donji desni centar forme – boji “slučajnom” bojom.

Canvas – platno za crtanje procedure TForm 1. Form. Paint(Sender: TObject); var Naredba za

Canvas – platno za crtanje procedure TForm 1. Form. Paint(Sender: TObject); var Naredba za određivanje slučajnog polazišta za i: integer; generisanje slučajnih brojeva color: Long. Int; begin Randomize; for i: = 1 to 10000 do begin color: =RGB(Random(255), Random(255)); Canvas. Pixels[Random(Client. Width div 2), Random(Client. Height div 2)]: =Color; end; Funkcija za generisanje slučajnih brojeva iz intervala od 0 do 254

Canvas – platno za crtanje � Događaj On. Paint, realizuje se kada se forma

Canvas – platno za crtanje � Događaj On. Paint, realizuje se kada se forma prvi put iscrtava, ali i nakon privremenog prekrivanja drugim prozorom � Ako u toku izvršavanja programa menjamo dimenziju forme ne dolazi do iscrtavanja u skladu sa novim dimenzijama

Canvas – platno za crtanje procedure TForm 1. Form. Resize(Sender: TObject); begin Repaint; end;

Canvas – platno za crtanje procedure TForm 1. Form. Resize(Sender: TObject); begin Repaint; end; metod Repaint – ponovno iscrtavanje forme koristeći nove dimenzije

Canvas – platno za crtanje � Svaka slika, crtež ili shema = skup grafičkih

Canvas – platno za crtanje � Svaka slika, crtež ili shema = skup grafičkih primitiva (tačaka, linija, elipsi, lukova itd. ) � Odgovarajući metodi svojstva Canvas: Line. To, Polyline, Rectangle, Polygon, Ellipse, Text. Out itd.

Crtanje linija � Crtanje u Delphiju se realizuje pomoću “pera” � Nevidljiv objekat čija

Crtanje linija � Crtanje u Delphiju se realizuje pomoću “pera” � Nevidljiv objekat čija je tekuća pozicija uvek na poslednjem obojenom pikselu

Crtanje linija � Move. To(x, y), postavlja pero na poziciju (x, y); � Line.

Crtanje linija � Move. To(x, y), postavlja pero na poziciju (x, y); � Line. To(x 1, y 1), izvlači liniju od tekuće pozicije pera do pozicije (x 1, y 1); � Pen. Width, debljina pera; � Pen. Color, boja pera; � Pen. Style, stil.

Crtanje linija � Zadatak iz knjige strana 123.

Crtanje linija � Zadatak iz knjige strana 123.

Crtanje linija Primer 2: � Nacrtati najveće X slučajne boje u granicama forme. Obezbediti

Crtanje linija Primer 2: � Nacrtati najveće X slučajne boje u granicama forme. Obezbediti da se crtanje realizuje pritiskom na dugme Crtaj. Predvideti brisanje pritiskom na dugme Brisi.

Crtanje linija procedure TForm 1. btn. Crtaj. Click(Sender: TObject); begin Randomize; Canvas. Pen. Width:

Crtanje linija procedure TForm 1. btn. Crtaj. Click(Sender: TObject); begin Randomize; Canvas. Pen. Width: =10; Canvas. Pen. Color: =RGB(Random(255), Random(255)); Canvas. Pen. Style: =ps. Dot; Canvas. Move. To(0, 0); Canvas. Line. To(Client. Width-1, Client. Height-1); Canvas. Move. To(Client. Width-1, 0); Canvas. Line. To(0, Client. Height-1); end; procedure TForm 1. btn. Brisi. Click(Sender: TObject); begin Refresh; end;

Crtanje pravougaonika � Metoda Rectangle iscrtava pravougaonik; � U instrukciji kojom se poziva metoda

Crtanje pravougaonika � Metoda Rectangle iscrtava pravougaonik; � U instrukciji kojom se poziva metoda treba navesti koordinate temena jedne njegove dijagonale; Canvas. Rectangle(10, 50, 50) Gornji levi ugao Donji desni ugao

Crtanje pravougaonika � Boju, stil i širinu linije konture pravougaonika definišu svojstva pera pen

Crtanje pravougaonika � Boju, stil i širinu linije konture pravougaonika definišu svojstva pera pen platna na kome se crta; � Boju i stil bojenja unutrašnjosti pravougaonika definišu svojstva četke brush platna na kome se crta;

Primer � Nacrtati zastavu bivše Jugoslavije bez zvezde petokrake.

Primer � Nacrtati zastavu bivše Jugoslavije bez zvezde petokrake.

procedure TForm 1. btn. Crtaj. Zastavu. Click(Sender: TObject); begin Canvas. Brush. Color: =cl. Blue;

procedure TForm 1. btn. Crtaj. Zastavu. Click(Sender: TObject); begin Canvas. Brush. Color: =cl. Blue; Canvas. Rectangle(10, 90, 30); Canvas. Brush. Color: =cl. White; Canvas. Rectangle(10, 30, 90, 50); Canvas. Brush. Color: =cl. Red; Canvas. Rectangle(10, 50, 90, 70); end;

Crtanje kružnice i elipse � Elipsa ili kružnica (specijalan slučaj elipse) se crta pomoću

Crtanje kružnice i elipse � Elipsa ili kružnica (specijalan slučaj elipse) se crta pomoću metode Ellipse; � Canvas. Ellipse(x 1, � X 1, y 1, x 2, y 2); y 1 gornje levo teme, x 2, y 2 donje desno teme pravougaonika unutar koga se iscrtava elipsa;

Primer � Kreirati aplikaciju kojom se crtaju krugovi po uzoru na krugove simbola Olimpijskih

Primer � Kreirati aplikaciju kojom se crtaju krugovi po uzoru na krugove simbola Olimpijskih igara.

Izlomljene linije i mnogouglovi � Polyline, za crtanje izlomljene linije; � Polygon, za ctanje

Izlomljene linije i mnogouglovi � Polyline, za crtanje izlomljene linije; � Polygon, za ctanje mnogouglova; � Parametar metoda je niz tačaka (point(x, y)); � Pri crtanju poligona prva i poslednja tačka se ovezuju, dok pri crtanju poligonalne linije ne;

Izlomljene linije i mnogouglovi � Kreirati aplikaciju koja crta petougao i unutar njega slovo

Izlomljene linije i mnogouglovi � Kreirati aplikaciju koja crta petougao i unutar njega slovo M.

procedure TForm 1. Form. Paint(Sender: TObject); begin with Canvas do begin pen. Width: =10;

procedure TForm 1. Form. Paint(Sender: TObject); begin with Canvas do begin pen. Width: =10; brush. Color: =cl. Yellow; polygon([point(150, 20), point(260, 100), point(220, 220), point(80, 220), point(40, 100)]); poly. Line([point(110, 160), point(110, 100), point(150, 160), point(190, 100), point(190, 160)]); end;

Ispis teksta � Metoda za ispis teksta na platnu Canvas. Text. Out(x, y, Tekst)

Ispis teksta � Metoda za ispis teksta na platnu Canvas. Text. Out(x, y, Tekst) Tekst, tekst koji se ispisuje; (x, y), gornji levi ugao oblasti ispisa teksta. Svojstvo Font, kojim se ispisuje tekst ima sledeća podsvojstva: Name, Size, Style, Color.

Ispis teksta With Canvas do begin Font. Name: =‘Arial’; Font. Style: =[fs. Bold, fs.

Ispis teksta With Canvas do begin Font. Name: =‘Arial’; Font. Style: =[fs. Bold, fs. Italic]; Font. Size: =16; Text. Out(50, ’Delphi’) end; End;

Canvas Platno za crtanje

Canvas Platno za crtanje