Professional Documents
Culture Documents
Seminarski Rad Računarska Grafika 2
Seminarski Rad Računarska Grafika 2
RAUNARSKA GRAFIKA II
-seminarski rad-
Zrenjanin, 2013.
RAUNARSKA GRAFIKA II
-seminarski rad-
Zrenjanin, 2013.
SADRAJ:
1. WINDOWS APLIKACIJA..................................................................................... 4 2. BORLAND DELPHI 7.0 ......................................................................................... 5 3. RAD S GRAFIKOM ............................................................................................... 7 3.1 Crtanje linija .............................................................................................. 8 3.2 Crtanje pravougaonika ............................................................................... 8 3.3. Pomjeranje predmeta po prozoru ............................................................... 8 3.3.1. Kretanje predmeta preko neke pozadine ................................................. 9 3.3.2. Kretanje predmeta u okviru prozora........................................................ 9 3.3.3. Pomjeranje predmeta ............................................................................ 10 4. PRIMJERI APLIKACIJA SA GRAFIKOM U DELPHIJU............................... 12 5. ZAKLJUAK ....................................................................................................... 15 6. LITERATURA ...................................................................................................... 16
Seminarki rad
Raunarska grafika 2
1. WINDOWS APLIKACIJA
Aplikacije su programski sistemi projektovani za rjeavanje odreenog problema. Osnovna odlika aplikacija pod operativnim sistemom MS Wiindows jeste sprega aplikacije i korisnika, zasnovana na prozorima i drugim vizuelnim komponentama. Pomou ovih komponenti korisnik upravlja radom aplikacije i prima povratne informacije od nje. Prozori mogu da se predstave kao okviri koji spajaju komponente u logike cijeline. Sastavni dio svake aplikacije predstavlja bar jedan prozor koji se naziva glavni prozor. Osim njega aplikacija moe da ima, ali i ne mora, jo prozora koji se nazivaju sekundarni prozori. Glavni prozor se uglavnom stalno nalazi na ekranu, dok se sekundarni prozori pojavljuju i nestaju u zavisnosti od trenutnih potreba. Ima sluajeva kada se sekundarni prozori due zadravaju na monitoru. Po namjeni, specijalnu vrstu sekundarnih prozora ine prozori za dijalog, koriste se za saoptavanje poruka korisniku kao i za primanje informacije od strane korisnika. Postoje dva tipa ovih prozora, to su usvojeni i neusvojeni. Kod usvojenih prozora korisnik ne moe da pristupi glavnom prozoru dok god je ovaj aktivan, dok to sa neusvojenim nije slu aj. Ako postoji vie prozora oni se meusobno iscrtavaju jedan preko drugog s tim to je aktivni prozor jedini vidljiv u cjelini. Korisnik moe pomou mia da smjenjuje aktivni prozor. Takoe postoji i specijalna vrsta prozora koja se nalazi unutar aktivnog prozora. Ti prozori predstavljaju djecu prozora u ijem su radnom okruenju. Ti prozori mogu da se pomjeraju samo unutar radnog prostora njegovog roditelja, a pomjeranjem roditelja pomjeraju se i djeca. Osnovni rad sa prozorima pod Windows-ima jeste miem, mada se u tu svrhu moe koristiti i tastatura. Postupak izrade aplikacije naziva se projektovanje aplikacije ili skraeno samo projekat.
Mladen Cvijanovi
Strana 4 od 16
Seminarki rad
Raunarska grafika 2
Mladen Cvijanovi
Strana 5 od 16
Seminarki rad
Raunarska grafika 2
U posljednjih deset godina, na personalnim raunarima, sve vie se koristi operativni sistem MS Windows. Tako da je firma Borland 1995. godine proizvela i objavila svoje programsko okruenje Delphi koje je bilo namjenjeno za rad pod operativnim sistemom MS Windows. Programsko okruenje Delphi je bazirano na programskom jeziku Object Pascal koje prestavlja objektno proirenje Turbo Pascal-a, ovaj programski jezik svoj naziv mijenja u Delphi po izlasku sedme generacije ovog okruenja. Delphi je potpuno objektno orjentisan programski jezik. To znai da se prilikom programiranja u centar panje postavlja objekat, za razliku od strukturiranog programiranje gdje se u centar postavlja struktura. Objekti su Inteligentni podaci koji mogu da se nalaze u odreenim stanjima. Ta stanja mogu da se promjene primjenom odreenih metoda. Skup objekata sa istim osobinama ine jednu klasu. Klase su analogne tipovima podataka, kao to su cijeli brojevi i slino, samo to prestavljaju proizvoljno sloene apstraktne objekte. Programer koji radi u ovom okruenju moe da direktno poziva funkcije Windows-ovog API, poto su i one neposredno podrane, mada zato uglavnom nema potrebe.
Mladen Cvijanovi
Strana 6 od 16
Seminarki rad
Raunarska grafika 2
3. RAD S GRAFIKOM
Kada elimo da u Delphi-ju da nacrtamo neto mi u stvari crtamo preko odreenog platna (Canvas) koje se u stvari prostire preko nae aplikacije ili objekta na kome crtamo. Ovo platno, ili mrea se sastoji iz niza piksela, odnosno mrea je podijeljena horizontalnim i vertikalnim linijama. Tako svaki piksel ima svoje X i Y koordinate. Koordinatni po etak ovog platna je kao i kod veine slinih sistema za implementaciju grafike je u gornjem levom uglu. Taka u gornjem levom uglu ima koordinate X=0 i Y=0, dok taka u donjem desnom uglu prozora ima koordinate X=ClientWidth-1 i Y=ClientHeight-1, gde ClientWidth i ClientHeight predstavljaju irinu i visinu klijentske oblasti. Crtanje na ovom platnu se u stvari vri tako to se osvijetljava pojedinani piksel ovog platna odreenom bojom. Ovo platno predstavlja u stvari objekat tipa TCanvas koji ima svoja odreena svojstva kao i metode. Ovo platno ima svojstvo Pixels[X,Y], koje predstavlja odreeni piksel gde su X i Y njegove koordinate. Znai, ukoliko bi eljeli da obojimo piksel na poziciji 5,20 utom bojom pisali bi sledee : Canvas.Pixels[5,20]:=clYellow. Kao to vidimo boje su predstavljene njihovim imenom, s tim to ispred imena ide prefiks cl to je skraeno od color. Boja je tipa TColor, tako da bi za neku promenljivu Boja pisali : var Boja : Tcolor. Meutim, postoji i nain da se boja prikae kao broj, jer je svakoj boji dodijeljen odreen broj pa bi za neku promjenljivu Boja mogli da piemo i sledee : var Boja : Longint. Takoe, dozvoljeno je i obrnuto, odnosno ukoliko bi eleli da neka promenljiva dobije vrijednost boje nekog piksela pisali bi : Prvo bi definisali promenljivu recimo boja Var Boja:TColor; Nakon toga bi pisali sledeu naredbu : Boja:=Canvas.Pixels[5,20]; to se tie platna (Canvas) njega poseduju komponente : Form, Image, Printer i StringGrid. Svojstvo Canvas ima svoja podsvojstva : Pen pero za bojenje, Brush etku za bojenje, Font font, Pixels Pikseli koji ine ovu mreu i PenPos pozicija pera za crtanje. Podsvojstvo Pen ima svoja svojstva : Color -boja, Style -stil, Mode reim rada i Width irina, podsvojstvo Brush ima svoja svojstva : Color boja i Style stil, podsvojstvo Font ima svoja svojstva : Color boja, Style stil, Size veliina i Name ime, dok se sa podsvojstvima Pixels i PenPos postupa na drugaiji nain. Postoji jo jedan nain definisanja boja a to je korienje funkcije RGB. Ona je sledeeg oblika : Function RGB(R:Byte, G:Byte, B:Byte):longint, gde paramatri R,G i B predstavljaju uee R(Red)-crvene, G(Green)-zelene i B(Blue)-plave boje u onoj boji koju vraa funkcija RGB, s tim da ovi parametri mogu da budu u opsegu od 0 (odsustvo boje) do 255 ) puno prisustvo boje). Na taj nain crvena boja bi bila predstavljena kao RGB(255,0,0), zelena kao RGB(0,255,0) a plava kao RGB(0,0,255).
Mladen Cvijanovi
Strana 7 od 16
Seminarki rad
Raunarska grafika 2
Seminarki rad
Raunarska grafika 2
naizmjeninim mjenjanjem svojstva Picture komponente Image postii potpuni utisak da se predmet kree po prozoru, a pogodnim mjejanjem vremenskog intervala i pomjeranja moemo postii vrlo dobru animaciju.
Seminarki rad
Raunarska grafika 2
Shape1.Top:=Shape1.Top+10 ako se predmet kree na dole i Shape1.Top:=Shape1.Top-10 ako se predmet kree na gore, gde se kao to vidimo predmet pomjera u jednom trenutku za prirataj od 10. Meutim poto predmet mijenja pravac u odnosu na ivicu na koju je naiao bolje emo urediti kretanje na sledei nain : Shape1.Left:=Shape1.Left+Znak1*10 i Shape1.Top:=Shape1.Top+Znak2*10, gde promjenljive Znak1 i Znak2 naizmjenino uzimaju vrijednosti 1 i -1 i na taj nain odreuju smjer kretanja. Ove preomjenljive emo definisati kao globalne za cio unit u odeljku var za Unit1. Na po etku emo im dodjeliti vrijednost Znak1:=1 i Znak2:=1, to moemo pisati u proceduri za obradu dogaaja FormCreate jer on nastaje samo jednom u trenutku kada se kreira forma, to odreuje da se predmet kree desno na dole. Sad emo u proceduru za obradu dogaaja Timer1.Timer pisati sledei kod : Procedure TForm1.Timer1Timer(Sender: TObject); begin If (Znak1=1) and (Shape1.Left>ClientWidth-25) then Znak1:=-Znak1; If (Znak1=-1) and (Shape1.Left<0) then Znak1:=-Znak1; If (Znak2=1) and (Shape1.Top>ClientHeight-25) then Znak2:=-Znak2; If (Znak2=-1) and (Shape1.Top<0) then Znak2:=-Znak2; Shape1.Left:=Shape1.Left+Znak1*10; Shape1.Top:=Shape1.Top+Znak2*10; end; Na ovaj nain postiemo kretanje predmeta u prozoru, s tim da on ostane u granicama prozora tako to se odbija od ivica kada naie na njih i tako beskonano ukoliko se u aplikaciju ne ukljui i neka komponenta koja bi zaustavljala kretanje predmeta. to se tie kretanja ono se moe modifikovati i ovde tako da se dobiju to bolji rezultati, a oni su najbolji pre svega kod malih predmeta i kada je prirataj za koji se vri promjena kretanja mali, a interval komponente Timer to manji tako da se esto izaziva promjena kretanja. Takoe, sa aplikacijom se moe eksperimentisati mjenjanjem dimenzije predmeta, boje predmeta, veliine prozora kao i dodavanjem jo nekih elemenata tako da se dobije efektniji rezultat.
Mladen Cvijanovi
Strana 10 od 16
Seminarki rad
Raunarska grafika 2
beginIf Key='w' then Image1.Top:=Image1.Top-10;If Key='z' then Image1.Top:= Image1.Top+10;If Key='a' then Image1.Left:= Image1.Left-10;If Key='s' then Image1.Left:= Image1.Left+10;end; Nakon startovanja imaemo aplikaciju koja na osnovu toga ta korisnik pritisne na tastaturi vri pomjeranje malog automobila iju sliku smo ubacili u komponentu Image1 i iji emo u stvari poloaj i mijenjati.
Mladen Cvijanovi
Strana 11 od 16
Seminarki rad
Raunarska grafika 2
Mladen Cvijanovi
Strana 12 od 16
Seminarki rad
Raunarska grafika 2
Kod: var Form3: TForm3; n:integer; implementation uses unit1; {$R *.dfm} procedure TForm3.FormPaint(Sender: TObject); var x1,y1,x2,y2,i,a,b:integer; begin randomize; n:=spinedit1.Value; a:=clientwidth; b:=round(a/n); x1:=0;y1:=0;x2:=x1+b;y2:=y1+b; for i := 1 to n do begin canvas.brush.color:=rgb(random(255),random(255),random(255)); canvas.Ellipse(x1,y1,x2,y2); Mladen Cvijanovi
Strana 13 od 16
Seminarki rad x1:=x2;x2:=x1+b; end; end; procedure TForm3.SpinEdit1Change(Sender: TObject); begin refresh; end; end.
Raunarska grafika 2
Mladen Cvijanovi
Strana 14 od 16
Seminarki rad
Raunarska grafika 2
5. ZAKLJUAK
U okviru ovog seminarskog rada prikazan je princip rada sa grafikom u programskom jeziku Borland Delphi. Prikazane su osnovne funkcije i kontrole za rad sa grafikom u ovom programskom jeziku. Na kraju je prikazana aplikacija koja na ilustrativan primjer prikazuje kreiranje Formi koje se baziraju na grafikom prikazivanju objekata.
Mladen Cvijanovi
Strana 15 od 16
Seminarki rad
Raunarska grafika 2
6. LITERATURA
[1] Delphi 7 majstor, Marco Cantu [2] Programsko okruenje Delphi 7 sa rijeenim zadacima, Laslo Kraus [3] Delphi programiranje punom snagom, Charles Calvert [4] ERwin OnLine Help [5] Borland Delphi 7.0 OnLine Help [6] Multimedija majstor, Tay Vaughan
Mladen Cvijanovi
Strana 16 od 16