5.

PROSTORNE TRANSFORMACIJE RAČUNARSKE GRAFIKA

Koordinatni sistemi Koordinatni sistem je skup nepokretnih linija i ravni koje se koriste za nedvosmisleno određivanje položaja nekog objekta njegovim koordinatama. Postoji više vrsta koordinatnih sistema. • • Koordinatni sistemi u ravni Koordinatni sistemi u prostoru

Najuobičajeniji koordinatni sistem za dvo-dimenzionalno crtanje je Dekartov koordinatni sistem. Dekartov koordinanti sistem se koristi u matematici da jednoznačno odrediti svaku tačku u ravni preko dva broja, koji se obično zovu xkoordinata i y-koordinata. Koordinata x je mera položaja (pozicije) u horizontalnom pravcu, a y u vertikalnom pravcu. Koordinatni početak (origin) Dekartovog sistema je u x=0, y=0. Koordinate se pišu kao parovi koordinata u zagradama tako što se prvo navodi koordinata x a potom posle zareza sledi koordinata y. Dekartov koordinatni sistem je izmislio francuski matematičar i filozof Rene Dekart, koji je, između ostalih stvari, pokušavao da spoji algebru i Euklidsku geometriju. Na slici 5.1. prikazan je Dekartov koordinatni sistem u dve dimenzije. Linije x i y sa podeonim crticama nazivaju se ose (x-osa ili apcisa i y-osa ili ordinata) i mogu da se protežu od negativne do pozitivne beskonačnosti.

Slika 5.1. Dekartov dvodimenzionalni koordinatni sistem

a φ = ugao. Polarni koordinatni sistem Cilindrični koordinatni sistem.2. Položaj tačke je određen polarnim koordinatama ro (ρ) (polarna razdaljina.7). numeričkom vrednošću. radijus vektor. Ovaj sistem je polarni sistem prebačen u 3D svet dodavanjem visinske koordinate z. φ). y i z) koje se seku u koordinatnom početku i svaka je ortogonalna na preostale dve.2.Dekartov koordinatni sistem se može koristiti u prostoru (gde se koriste tri koordinate) i u višedimenzionalnim sistemima. anomalija. Ima usvojeni koordinatni početak O i orijentisanu pravu liniju OP (polarna osa). . Slika 5.3. Ovako postavljene 3 prave obrazuju tzv. (Odgovara položaju tri prsta na ruci. gde je r= distanca. Polarni sistem se koristi u ravni a tačka se zadaje uglovnom (polarnom) koordinatom i distancom. tj. amplituda). Dekartov kordinatni sistem sadrži 3 ose (x. Položaj tačke zadaje se kao: P(r. odstojanjem od koordinatnog početka.Koordinate tačke zadaju se kao: P(r. na primer Q(-5.-5. drugačije naziva i azimut.lKoordinate se zadaju linearno. Dekartov prostorni koordinatni sistem Polarni koordinatni sistem. φ. Slika 5. Pogodne su za operaciju tačkama koje se nalaze na površini cilindra.ortogonalni prostorni trijedar pravih. Često se polarna koordinata. poteg) i fi (φ) (polarni ugao. kao što je prikazano na slici 5.z).

onda menadžeri koriste pravougaoni koordinatni sistem sa koordinatama vreme i novac čije su merne jedinice meseci i dinari. Koordinatni sistem za prikaz mesečnih prihoda Prikazivanje objekata u računarskoj grafici organizovano je korišćenjem barem dva koordinatna sistema: koordinatnog sistema objekta i koordinatnog sistema uređjaja za grafički prikaz sadržaja.00 Ju A v li Se gu pt st em b O ar kt ob No a ve r m De ba r ce m ba r Ja nu a Fe r br ua r ar t Ap ril M M Ju n aj prihod meseci Slika 5. world coordinate system – WCS) kojim su definisane realne koordinate objekata u prirodi. Mesečni prihod 30. U sistemu koje koriste na primer menadžeri merna jedinica ostvarenog prihoda jesu dinari.000.Slika 5.00 15.000. Lokalni koordinatni sistem se koristi da bi se olakšao prikaz složenih oblika.4.00 0. Sistem se bira tako da izračunavanja budu što je moguće jednostavnija.00 5. Ako se analizira mesečni prihod ostvaren u toku jedne godine. Koordinatni sistem objekta je svetski. U SI sistemu jedinica za vreme je mesec ali često se koriste i dani kao i sati.00 10.000.00 20. merni koordinatni sistem (engl. On je zajednički za sve prikazane objekte. a takođe jednoj jedinici odgovara i više mernih jedinica. Svakoj fizičkoj veličini odgovara neka merna jedinica. Koordinatni sistem uređaja za prikazivanje je prilagođen veličini prostora na kome se prikazuje objekat.5.000.000.000.00 25. koji se mogu transformacijama lako prikazati globalnim . Cilindrični koordinatni sistem Sistem se bira u zavisnosti od vrste problema koji se rešava.

realnog prostora (WC prostora) u normalizovan prostor uređaja (NDC prostor). Preslikavanje sadržaja iz normalizovanog prostora (NDC prostora) u prostor uređaja za prikazivanje (DC prostor).koordinatama. vrši preslikavanje iz stvarnog . (Normalized Device CoordinateNDC sistem).6. Normalizovani prostori su apstraktni i u njima su dimenzije objekata u intervalu 0÷1. Transformacije koordinatnih sistema . Ta operacija se naziva transformacijom radne stanice (workstation transformation . Izvršenje ove transformacije. izvodi se prema dimenzijama uređaja. koriste se normalizovani koordinatni sistemi i normalizovani prostori. Slika 5. Da bi se obezbedila prenosivost grafičkog sadržaja nezavisno od uređaja za prikazivanje.WT transformacija). Tako se transformacijom normalizacije (Normalization transformation – NT transformacija).Taj prostor je definisan koordinatnim sistemom korisnika (UCS – User Coordinate System).6. Slika 5. Koordinatni sistem korisnika sa koordinatama x’y’z’ Prenos slika iz jednog u drugi koordinatni prostor vrši se matematičkim transformacijama preslikavanja. Prema kompjuterskom grafičkom standardu normalizovan prostor je označen je kao normalizovan prostor uređaja. postiže se pozivom odgovarajućeg potprograma primenjenog standarda za rad.

U procesu transformacije važno je uočiti da je izvorna scena smeštena u svetskom koordinatnom sistemu. translacija otvora u željeni položaj (T2). Izdvojeni deo svetskog koordinatnog sistema koji sadrži scenu koja se želi prikazati naziva se prozor (window).7. . belgijski umetnik Rene Magrit (Magritte) predstavlja nam obmanu oka koje perspektivu jednog pariskog bulevara gotovo ne razlikuje od konusnog oblika jedne srednjevekovne građevine. Transformacija pogleda Na slici Euklidova šetnja (Les Promenades d'Euclide). Slika 5. promena faktora proporcionalnosti (S). Transformacije izlaza Postupak transformacije koordinata sadrži sljedeće elementarne transformacije: • • • translacija prozora u koordinatni početak (T1). a konačna slika u koordinatnom sistemu prikaznog uređaja. a izdvojeni dio koordinatnog sistema prikaznog uređaja koji sadrži sliku odabrane scene naziva se otvor-prikazni prozor (viewport).

Slika 5. Naime. a naslikano platno na štafelaju sa vidnim poljem koje se u grafici zove vjuport (viewport). Deo objektivne stvarnosti tako je verno prenet na platno da se više ne razlikuje od stvarnosti. Međutim. Slikarsko platno možemo poistovetiti sa ekranom računara. dok leva. vertikalna stranica predstavlja ekransku y−koordinatu (Slika 5.9. Euklidova šetnja Ovakve dvosmislenosti i druge obmane čula vida navode nas na traženje preciznog formalnog jezika kojim bi računskoj mašini preneli naše geometrijske ideje na jednoznačan način. desno). ova slika sadrži i priču upravo o onom optičko-geometrijskom odnosu o kome ovde raspravljamo i koji se zove transformacija pogleda. na Magritovoj slici rađenoj u tehnici ulje ne platnu. Sada ostaje samo da slikarsko platno zamenimo ekranom računara. umetnik predstavlja deo realnosti (bulevar i kulu) koji vidi kroz prozor. Transformacija pogleda – „Window to viewport“ . vidimo jedan veliki prozor nekog pariskog salona ispred koga stoji slikarski stafelaj na kome je tek završeno platno na kome se vidi deo pariskog pejzaža. Prvi korak u tom pravcu je definisanje okvira na ekranu računara u kome ćemo raditi i razvijati neki naš projekat. Slika 5. Taj se okvir zove ekranski prozor i predstavljen je pravougaonikom čija donja stranica predstavlja ekransku x−koordinatu. Ovaj prozor se u grafici zove svetski prozor (world window).9.8. Na pravougaonom polju vjuporta.

postavljene na analogan način kao i ekranske.11. zovu se svetske koordinate.U ekranski prozor smeštamo sliku koju obrađujemo. Ywmax Yw Ywmin WINDOW Yvmax Aw Yv Yvmin VIEWPORT Av xwmin xw xwmax xvmin xv xvmax Slika 5.9 (levo).Y) zove se svetski koordinatni sistem. Na Slici 5. Koordinatni sistem (X. koji sadrži sliku na kojoj radimo. po pravilu je manji od formata ekranskog prozora.Yv) dat je proporcijom: X w – X wmin_ = X v – X vmin_ X wmax – X wmin X vmax – X vmin Y w – Y wmin_ = Y v – Y vmin_ Y wmax – Y wmin Y vmax – Y vmin za X ravan za Y ravan . vjuport sadrži sliku koju obrađujemo i koja je transformisana slika neke realne scene iz fizičkog sveta.Yw) i ekranskih koordinata (Xv. i takodje po pravilu je i sam pravougaon. Okvir te realne slike. Preslikavanje tačke iz prozora u prikazni prozor S’ obzirom da pri preslikavanju relativni položaj tačke u oba sistema mora da bude jednak.11. Format slike. odnos svetskih (Xw. preslikavanje tačke iz prozora u svetskom kordinatnom sistemu u prikazni prozor uređaja dobićemo sliku 5. je vjuport. Na osnovu rečenog.10. svetske koordinate su označene sa X i Y . Dakle. Taj novi.10: Slika 5. kao što je već naglašeno je svetski prozor (world window) a odgovarajuće koordinate. Generisanje prikaza na prikaznom uređaju Ako pretpostavimo da je slika tačka. manji pravougaonik. proces generisanja prikaza možemo predstaviti sledećim blok dijagramom kao na slici 5.

Y wmin ) Y wmax – Y wmin ili X v = X vmin +Sx·(X w . Skaliranje Za ujednačeno (unifrmno) skaliranje slike. rotacija i skaliranje. Ova transformacija je u računarskoj grafici poznata kao transformacija pogleda ili. Geometrijske transformacije Geometrijske transformacije su operacije kojim se originalna tačka preslikava u njenu sliku. y' = y · Sy . Za geometrijske transformacije kretanja (koje čine translacija i rotacija) postoje dve konvencije: konvencija pokretnog koordinatnog sistema (pokretne kamere ili posmatrača) i konvencija pokretnog objekta koji se posmatra.Iz navedenih proporcija položaj tačke u ekranskim koordinatama izraženim preko svetskih bi bio sledeći: X v = X vmin + X vmax – X wmin_ ·( X w . Osnovne transformacije u 2D prostoru su: translacija. transformacija skaliranja se predstavlja sledećom matričnom jednačinom: x' = x · Sx. svaka kooordinata se množi odgovarajućim faktorom skaliranja. preciznije window-to-viewport transformacija. Matematički. Posle toga. gde je Sy faktor skaliranja u Y pravcu. original se može ponovo vratiti na svoje mesto. vrlo često je korisno skalirati drugačije za specijalni efekat i da bi dijagram stao na ekran. Ako to nije ono što se traži. gde je Sx faktor skaliranja u X pravcu. Nepotrebno je određivati faktor skaliranja za dve identične ose. U računarskoj grafici se ove dve konvencije obično kombinuju tako da imamo i kretanje objekta i kretanje posmatrača što se može uočiti u mnogim softverima za 3D grafiku. . onda se original treba pomeriti ka odgovarajućem centru rastezanja pre nego što skaliranje počne.X wmin ) ili Y v = Y vmin +Sy·(Y w . Efekat takvog skaliranja je uvećanje slike proporcijalno u odnosu na original.Y wmin ) pri čemu su Sx i Sy konstante koje ujedno predstavljaju i faktore skaliranja.X wmin ) X wmax – X wmin Y v = Y vmin + Y vmax – Y wmin_ ·( Y w . Zaista.

y' = y + Ty. y' ] = [ x. Slično. pri čemu se dobija novi položaj P' (x1. gde je Ty vektor translacije u Y pravcu. Matematički transformacija translacije se predstavlja sledećom matričnom jednačinom: x' = x + Tx.10. y ] | Sx 0 | | 0 Sy | ili P' = P · S Na slici 5. gde je Tx vektor translacije u X pravcu. Transformacija skaliranja Zanimljivo je zapažanje da se „slika u ogledalu“ dobija skaliranjem gde Sx i Sy slučaju imaju različit znak.1.1 i Sy = 1 dobijamo odraz na y-osi.11. y' ] = [ x. Ako je Sx = . Translacija Ose se mogu pomerati u bilo kom pravcu prostim dodavanjem i oduzimanjem konstanti od koordinate svake tačke na slici. onda se ose transliraju i rotiraju sve dok se x-osa ne poklopi sa traženom linijom.1 daju odraz po x-osi. y1) koordinatnog početka možete videti na slici 5.5: Slika 5. Sy = 1. prikazana je transformacija skaliranja pri faktorima Sx=3 i Sy=0.10. Ako je potreban odraz po nekoj liniji koja nije osa. [ x'. Sx = 1 i Sy = . vrši se odraz kada je Sx = . i onda se rotira i translira nazad na početnu poziciju. .[ x'. y ] + | Tx Ty | ili P' = P + T Translaciju duž X ose za vektor Tx =3.

11. Ipak. rotirati sliku oko te tačke.12. Možemo jednostavno pomeriti koordinatni početak na željeni centar rotacije (translacija).sinα + ycosα . Transformacija rotacije Korišćenjem elementarne trigonometrije možemo dobiti jednačine za rotaciju ose u smeru suprotnom kazaljke na satu za ugao α (slika 5. mi posmatramo rotaciju objekta oko tačke koordinatnog početka.P P’ Slika 5. ne moramo se mučiti sa njima. Tako.12): x' = xcosα + ysinα y' = . Transformacija translacije Rotacija Matematičke jednačine za rotaciju oko opšte tačke u ravni su prilično složene. Slika 5. a zatim translirati ose nazad.

13.Matematički transformacija jednačinom: rotacije se predstavlja sledećom matričnom [ x'.14. Izvršavanje translacije a zatim rotacije .Na primer. Izvršavanje rotacije a zatim translacije Slika 5. y' ] = [ x. y ] | cosα sinα | |-sinα cosα | ili P' = P · R Red izvršenja transformacija Upšteno. Slika 5. red po kome se niz transformacija izvršava može ozbiljno uticati na izgled konačne slike.4) za kojom sledi rotacija od +300 daje prilično drugačiji rezultat od primenjivanja ovih transformacija po obrnutom redosledu. translacija koja pomera kooordinatni početak u tačku (3.