Professional Documents
Culture Documents
Racunarska Grafika
Racunarska Grafika
Racunarska Grafika
(x
, y
), onda to moe
da se denie izrazima:
x
= x +d
x
y
= y +d
y
(1.1)
Ako se deniu matrice
P =
_
x
y
_
P
=
_
x
_
T =
_
d
x
d
y
_
(1.2)
onda izrazi (1.1) mogu preciznije da se izraze kao:
P
= P +T (1.3)
17
Korisnik moe da translira ceo objekat primenjujui izraze (1.1) na svaku taku ob-
jekta. Svaka linija objekta je sastavljena od beskonano mnogo taaka, onda bi proces
translacije trajao izuzetno dugo. Dovoljno je da se transliraju krajnje take linija i da se
iscrta linija izmeu novih, transliranih taaka; ovaj princip vai i za skaliranje i rotiranje.
Na slici 1.1 prikazano je transliranje kuice za vrednost (3, 4).
Slika 1.1. Transliranje
Take mogu da budu skalirane ili mogu da im se promene veliine (vrednosti) samo
po x ili samo po y osi (neproporcionalno) ili i po x i po y osi za istu vrednost (propor-
cionalno). Promena veliine se postie mnoenjem sa s
x
du X ose i mnoenjem sa s
y
du Y ose:
x
= s
x
x y
= s
y
y (1.4)
U formi matrica izraz postaje:
_
x
_
=
_
s
x
0
0 d
y
_
_
x
y
_
ili P
= S P (1.5)
gde S predstavlja matricu u izrazu (1.5).
Na slici 1.2 kuica je skalirana vrednou
1
2
po X osi i vrednou
1
4
po Y osi.
Slika 1.2. Skaliranje
Treba napomenuti da se skaliranje obavlja oko koordinatnog poetka, to znai da je
kua manja i blia koordinatnom poetku. Ako je faktor skaliranja vei od 1, onda je
kuica vea i udaljenija od koordinatnog poetka. Proporcije kuice se menjaju ako su
faktori skaliranja razliiti po osama, tj. s
x
= s
y
. Proporcije kuice se ne menjaju ako
18
su faktori skaliranja isti po osama, tj. s
x
= s
y
.
Take mogu da se rotiraju oko koordinatanog poetka za neki ugao . Matema-
tika denicija rotiranja je:
x
= x cos ysin y
_
=
_
cos sin
sin cos
_
_
x
y
_
ili P
= R P (1.7)
gde R predstavlja matricu u izrazu (1.7). Na slici 1.3 prikazana je rotacija kuice za
45
(x
, y
).
Slika 1.4. Jednaina rotiranja
Zbog toga to se radi o rotiranju oko koordinatnog poetka, rastojanje od koordinatnog
poetka do taaka P i P
= P+T, za skaliranje P
= S P, i za rotiranje P
= R P.
Oigledno je da se transliranje tretira drugaije (kao zbir lanova) od skaliranja i roti-
ranja (kao proizvod lanova). Da bi se ovo pojednostavilo, ide se na to da se sve tri
transformacije tretiraju identino. U tom pogledu bitnu ulogu su imale homogene
koordinate i tu se sve transformacije tretiraju kao proizvodi. Homogene koordinate su
razvijene zbog raunarske grake i najpre su primenjene tu. Razni graki potprogrami
i procesori rade primenjujui homogene koordinate i pomenute transformacije.
U homogenim koordinatama take imaju i treu koordinatu. Umesto da taka bude
prikazana parom brojeva (x, y), u homogenim koordinatama taka je prikazana sa tri
broja (x, y, W). U isto vreme, za dve homogene koordinate (x, y, W) i (x
, y
, W
)
se kae da su iste ako se jedna koordinata dobija mnoenjem druge. Tako koordinate
(2, 3, 5) i (4, 6, 10) predstavljaju istu taku, koja je prikazana sa dva razliita kompleta
brojeva. Oigledno je da svaka taka ima neogranien broj prezentacija unutar ho-
mogenih koordinata. Vano je napomenuti da barem jedna homogena koordinata mora
da bude razliita od nule, to znai da nije dozvoljena taka (0,0,0). Ako je koor-
dinata W razliita od 0, onda vrednosti taaka mogu da se podele sa tom vrednou i
da se dobije jednakost:
(x, y, W) =
_
x
W
,
y
W
, 1
_
Kada je W = 0, onda moe da se obavi ovo deljenje i brojevi x/W i y/W se zovu
Dekartove koordinate homogenih taaka. Take sa W = 0 se nazivaju take u besko-
nanosti i takve take se nee ovde razmatrati.
Uobiajeno je da tri koordinate predstavljaju taku u 3D prostoru, ali ovde te
koordinate predstavljaju taku u 2D prostoru. Veza je sledea: ako se uzmu u obzir
sve koordinate koje predstavljaju istu taku, sve koordinate tipa (tx, ty, tW), gde je
t = 0, onda se dobija linija u 3D prostoru. Zakljuak je da svaka homogena taka
predstavlja liniju u 3D prostoru. Ako se homogenizuju take (deljenjem sa W),
onda se dobijaju take sa koordinatama (x, y, 1). To znai da homogenizovane take
formiraju ravan koja je denisana jednainom W = 1 u (x, y, W) prostoru. Slika 1.5
prikazuje ovu relaciju. Take u bekosnanosti nisu prikazane u ovoj ravni.
20
Slika 1.5. XYW homogeni koordinatni prostor
Kada se tako predstave homogene take, onda transformaciona matrica, koja mnoi
vektor jedne take kako bi se dobio vektor druge take, mora da bude 3 3. U formi
matrice 3 3 za homogene koordinate, izraz transliranja (1.1) postaje:
1 0 d
x
0 1 d
y
0 0 1
x
y
1
(1.10)
Transponovana matrica je matrica kod koje redovi i kolone menjaju svoja mesta i kod
koje mora da se zadovolji jednakost:
_
A
T
_
1
=
_
A
1
_
T
Ako se primene transponovane matrice, onda je:
(M P)
T
= P
T
M
T
Jednaina (1.10) moe da se predstavi u obliku:
P
= T (d
x
, d
y
) P (1.11)
gde je:
T (d
x
, d
y
) =
1 0 d
x
0 1 d
y
0 0 1
(1.12)
ta se deava kada se taka P translira pomou T (d
x
1
, d
x
2
) do take P
, a onda se
translira pomou T (d
x
2
, d
y
2
) do take P
= T (d
x
1
, d
y
1
) P (1.13)
P
= T (d
x
2
, d
y
2
) P
(1.14)
Ako se izraz (1.13) zameni u izrazu (1.14), dobija se:
P
= T (d
x
2
, d
y
2
) [T (d
x
1
, d
y
1
) P] = [T (d
x
2
, d
y
2
) T (d
x
1
, d
y
1
)] P (1.15)
21
Proizvod matrica T (d
x
2
, d
y
2
) T (d
x
1
, d
y
1
) je:
1 0 d
x
2
0 1 d
y
2
0 0 1
1 0 d
x
1
0 1 d
y
1
0 0 1
1 0 d
x
1
+d
x
2
0 1 d
y
1
+d
y
2
0 0 1
(1.16)
Oekivano transliranje je zaista tipa T (d
x
1
+ d
x
2
, d
y
1
+d
y
2
). Ovaj proizvod matrica
ima razne nazive, ali ovde e se koristiti naziv kompozicija matrica T (d
x
1
, d
y
1
) i
T (d
x
2
, d
y
2
).
Slino ovome, jednaina skaliranja (1.4) moe da se predstavi u matrinoj formi:
s
x
0 0
0 s
y
0
0 0 1
x
y
1
(1.17)
Denisanjem
S(s
x
, s
y
) =
s
x
0 0
0 s
y
0
0 0 1
, (1.18)
dobija se
P
= S(s
x
, s
y
) P (1.19)
Kao to je ranije uspeno transliranje predstavljeno sabiranjem, ovde se oekuje da e
se uspeno skaliranje predstaviti mnoenjem. Ako je poznato:
P
= S(s
x
1
, s
y
1
) P (1.20)
P
= S(s
x
2
, s
y
2
) P
(1.21)
i ako se izraz (1.20) zameni u izrazu (1.21), onda se dobija:
P
= S(s
x
2
, s
y
2
) [S(s
x
1
, s
y
1
) P] = [S(s
x
2
, s
y
2
) S(s
x
1
, s
y
1
)] P (1.22)
Proizvod matrica S(s
x
2
, s
y
2
) S(s
x
1
, s
y
2
) je:
s
x
2
0 0
0 s
y
2
0
0 0 1
s
x
1
0 0
0 s
y
1
0
0 0 1
s
x
1
s
x
2
0 0
0 s
y
1
s
y
2
0
0 0 1
(1.23)
I zaista, uspeno skaliranje je predstavljeno mnoenjem.
Na kraju, jednaina rotiranja (1.6) moe da se predstavi kao:
cos sin 0
sin cos 0
0 0 1
x
y
1
(1.24)
Denisanjem
R() =
cos sin 0
sin cos 0
0 0 1
(1.25)
22
dobija se
P
= R() P (1.26)
Ako je poznato:
P
= R(
1
) P (1.27)
P
= R(
2
) P
(1.28)
i ako se izraz (1.26) zameni u uzraz (1.27), dobija se:
R(
1
) R(
2
) =
cos
1
sin
1
0
sin
1
cos
1
0
0 0 1
cos
2
sin
2
0
sin
2
cos
2
0
0 0 1
=
=
cos(
1
+
2
) sin(
1
+
2
) 0
sin(
1
+
2
) cos(
1
+
2
) 0
0 0 1
(1.29)
Oigledno je iz izraza (1.28) da je:
R(
1
) R(
2
) = R(
1
+
2
) (1.30)
U gornjoj levoj 2 2 podmatrici u jednaini (1.25) dva reda mogu da se smatraju
vektorima. Da bi vektori bili prikazani, moraju da zadovolje tri uslova:
da je svaki vektor jedinini;
da vektori meusobno zaklapaju ugao od 90
r
11
r
12
t
x
r
21
r
22
t
y
0 0 1
(1.31)
i ija je gornja leva 22 podmatrica ortogonalna, sadri i uva informacije o uglovima i
duinama. Posle primene ovakve matrice, jedinina povrina (jedinini kvadrat) ostaje
jedinina povrina, samo se menja oblik (ne dobija se ni romb ni pravougaonik). Ovakve
transformacije su poznate pod nazivima transformacije vrstih tela (solida) zato to
23
se telo ili objekat transformie, ali nema izoblienja u bilo kom pravcu. Kombinacijom
matrica rotacije i translacije dolazi se do ovakve matrice.
Proizvodi proizvoljnih delova matrica za transliranje, rotiranje i skaliranje nazivaju
se i ane transformacije, jer se kod njih vodi rauna o paralelnosti linija, a ne o
duinama i uglovima. Na slici 1.6 prikazan je rezultat primene rotacije jedinine kocke
za 45
1 a 0
0 1 0
0 0 1
. (1.32)
lan a u matrici smicanja predstavlja proporcionalnu konstantu, tj. koecijent propor-
cionalnosti. Na primer, proizvod
SH
x
_
x y 1
T
=
_
x +ay y 1
T
jasno pokazuje srazmernu promenu u pravcu x ose kao funkciju y, tj. jasno pokazuje
smicanje du x ose. Slino ovome, matrica
SH
y
=
1 0 0
b 1 0
0 0 1
(1.33)
denie smicanje du y ose.
24
1.3.3 Kombinovanje 2D transformacija
Korisnik moe da kombinuje osnovne R, S i T matrice kako bi dobio eljeni rezultat.
Osnovna prednost kombinovanja transformacija je u poveanju ekasnosti primenom
jedne komponovane transformacije na taku, nego promena vie transformacija, jedne
za drugom.
Na primer, pretpostavka je da treba zarotirati objekat oko neke take P
1
. Uobia-
jeno je da se rotiranje vri oko koordinatnog poetka tekueg koordinatnog sistema, jer
veina grakih paketa tako i radi. Zbog toga se ovaj problem razbija na tri jednos-
tavnija koraka:
1. Transliranje objekta i denisanje koordinatnog poetka u taki P
1
.
2. Rotiranje objekta.
3. Transliranje objekta kako bi se taka iz koordinatnog poetka vratila na poziciju
P
1
.
Ovaj nain ilustrovan je na slici 1.8 gde se "kuica" rotira oko take P
1
(x
1
, y
1
). Prvo
transliranje se vri za (x
1
, y
1
), dok se poslednje transliranje obavlja za inverznu
vrednost (x
1
, y
1
). Rezultat je drugaiji nego da je obavljeno samo rotiranje oko take.
Slika 1.8. Rotacija oko take P
1
za ugao
Sloena transformacija ima sledei oblik:
TRT = T (x
1
, y
1
) R() T (x
1
, y
1
) (1.34)
TRT =
1 0 x
1
0 1 y
1
0 0 1
cos sin 0
sin cos 0
0 0 1
1 0 x
1
0 1 y
1
0 0 1
(1.35)
TRT =
cos sin x
1
(1 cos) +y
1
sin
sin cos y
1
(1 cos) x
1
sin
0 0 1
(1.36)
Slian pristup primenjuje se kada korisnik hoe da skalira objekat oko zadate take
P
1
. Najpre treba translirati objekat da se taka P
1
poklopi sa koordinatnim poetkom,
25
nakon toga se objekat skalira i, na kraju, objekat se translira nazad u taku P
1
. U
takvom sluaju, sloena transformacija ima sledei oblik:
TST = T (x
1
, y
1
) S(s
x
, s
y
) T (x
1
, y
1
) (1.37)
TST =
1 0 x
1
0 1 y
1
0 0 1
s
x
0 0
0 s
y
0
0 0 1
1 0 x
1
0 1 y
1
0 0 1
(1.38)
TST =
s
x
0 x
1
(1 s
x
)
0 s
y
y
1
(1 s
y
)
0 0 1
(1.39)
Ako korisnik hoe da skalira, rotira i translira kuicu sa takom P
1
kao centrom skali-
ranja i rotiranja, kao to je to prikazano na slici 1.9, onda je postupak sledei: najpre
se translira kuica i to tako da se taka P
1
poklopi sa koordinatnim poetkom, nakon
toga se skalira i rotira i, na kraju, vri se transliranje kuice iz koordinatnog poetka
do nove take P
2
, gde je zavrna pozicija.
Slika 1.9. Translacija, skaliranje i rotacija kuice do eljenog poloaja
Ovakva transformacija mora da sadri faktor(e) skaliranja, ugao rotacije, kao i pomeraje
tokom transliranja, tako da ova sloena transformacija ima sledei oblik:
TRTS = T (x
2
, y
2
) R() S(s
x
, s
y
) T (x
1
, y
1
) (1.40)
1.3.4 Transformacija prozor/vizir
U raunarskoj graci prozor (engleski naziv je Window) je deo ekrana u aplikativnim
i grakim interfejsima koji moe da sadri sopstveni dokumenat ili poruku. U okru-
enjima zasnovanim na prozorima, ekran moe da se podeli na nekoliko okana tako da
svaki od njih ima svoje granice i da sadri razliit dokument (ili razliit prikaz istog
dokumenta). Izraz vizir (engleski naziv je Viewport) u raunarskoj graci predstavlja
odreeni pregled (na) dokument(a) ili sliku(e). Vizir je slian prozoru, ali se u njemu
obino vidi samo deo dokumenta ili grake slike, i iz odreene take posmatranja.
Neki graki paketi zahtevaju od korisnika da denie izlazne koordinate u svetskom
koordinatnom sistemu (WCS-u), i to u razliitim jedinicama: mikronima, metrima,
miljama, svetlosnim godinama itd. Termin svetski se koristi, jer je to okruenje koje
apliakcija stvara i prikazuje korisniku.
26
Ako se deniu izlazne koordinate kao svetske koordinate, onda graki potprogrami
moraju da konvertuju te koordinate u ekranske koordinate. Pretvaranje jednih u druge
koordinate moe da se obavi na dva naina:
Prvi nain je da programer denie transformacionu matricu koja e izvriti redi-
rekciju ekranskih koordinata u svetske, i obrnuto.
Drugi nain je da programer denie pravougaonu povrinu u svetskom koor-
dinatnom sistemu i pravougaonu povrinu u ekranskom koordinatnom sistemu,
tj. u viziru, u koji e se mapirati sadrina prozora u svetskom koordinatnom
sistemu. Transformacije prenosa iz prozora u svetskom koordinatnom sistemu u
vizir u ekranskom koordinatnom sistemu primenjuju se na sve objekte prilikom
mapiranja, iz prozora u vizir. Slika 1.10 prikazuje ovaj koncept.
Slika 1.10. Prebacivanje iz prozora u vizir
Kao to se vidi sa slike 1.10, ako nije isti odnos visine (po y osi) i irine (po x osi)
prozora i vizira, onda se pojavljuje skaliranje objekata sa razliitim faktorima skaliranja
po svakoj osi. To znai da se objekti u viziru deformiu. Ako aplikacioni program menja
prozor ili vizir, onda se te promene manifestuju i na objekte unutar tih povrina. Ako
se vri prebacivanje iz prozora u vie razliitih vizira, onda se transformacije primenjuju
za svaki vizir posebno i na osnovu geometrije. To znai da su objekti razliiti u vizirima
razliitih dimenzija (slika 1.11).
Slika 1.11. Prebacivanje iz prozora u vie vizira
Ako su poznate dimenzije prozora i vizira, kako izgleda transformaciona matrica koja
mapira sadrinu prozora u svetskom koordinatnom sistemu u sadrinu vizira u ekran-
27
skom koordinatnom sistemu? Ova matrica moe da se razvije kao sloena matrica koja
obavlja tri koraka, kao to je to prikazano na slici 1.12.
Slika 1.12. Tri koraka za prebacivanje iz prozora u vizir
Prozor, koji je denisan donjim levim i gornjim desnim temenom, se, najpre, translira
u koordinatni poetak svetskog koordinatnog sistema. Sledei korak je da se prozor
skaliranjem svede na veliinu vizira. Na kraju se vri transliranje vizira kako bi se
pozicionirao u nalni poloaj. Sloena matrica M
wv
denisana je kao:
M
wv
= T (u
min
, v
min
) S
_
u
max
u
min
x
max
x
min
_
T (x
min
, y
min
)
gde je:
T (u
min
, v
min
) =
1 0 u
min
0 1 v
min
0 0 1
S
_
u
max
u
min
x
max
x
min
_
=
u
max
u
min
x
max
x
min
0 0
0
v
max
v
min
y
max
y
min
0
0 0 1
T (x
min
, y
min
) =
1 0 x
min
0 1 y
min
0 0 1
u
max
u
min
x
max
x
min
0 x
max
u
max
u
min
x
max
x
min
+u
min
0
v
max
v
min
y
max
y
min
y
min
v
max
v
min
y
max
y
min
+v
min
0 0 1
(1.41)
Mnoenjem matrice M
wv
sa
_
x y 1
T
dolazi se do eljenog rezultata:
P =
_
(x x
min
)
u
max
u
min
x
max
x
min
+u
min
(y y
min
)
v
max
v
min
y
max
y
min
+v
min
1
28
Mnogi graki paketi kombinuju transformaciju na relaciji prozora i vizira sa isecanjem
objekata u prozoru sa svetskim koordinatnim sistemom. Ovaj koncept isecanja e
biti naknadno obraen. Na slici 1.13 ilustrovano je isecanje sadrine prozora i njeno
prikazivanje u viziru.
Slika 1.13. Isecanje objekata u prozoru i njihovo prikazivanje u viziru
1.3.5 Ekasnost
Veina kompozicija R, S i T operacija proizvode matricu ija je forma:
M =
r
11
r
12
t
x
r
21
r
22
t
y
0 0 1
. (1.42)
Gornja leva podmatrica 22 predstavlja kompozitnu matricu rotiranja i skaliranja, gde
t
x
i t
y
predstavljaju komponente kompozitnog transliranja. Ako se rauna M P kao
vektor koji se mnoi matricom 33, onda se pojavljuje 6 sabiranja i 9 mnoenja. Poto
su vrednosti poslednjeg reda matrice u jednaini (1.41) ksne, onda to pojednostavljuje
operacije:
x
= x r
11
+y r
12
+t
x
y
= x r
21
+y r
22
+t
y
, (1.43)
i dolazi se do 4 sabiranja i 4 mnoenja. Na ovaj nain se poveava brzina rada, posebno
kada treba primeniti ove operacije na hiljade taaka po slici. Matrice 33 su korisne za
komponovanje 2D transformacija, ali je ekasnije koristiti nalne matrice za specijalne
i specine strukture podataka.
Jo jedna oblast gde je ekasnost bitna je stvaranje potrebnih pogleda na objekat
ili objekte, kao to su molekuli ili avion, gde se svaki pogled rotira za nekoliko stepeni.
Ako treba kreirati i prikazati svaki pogled dovoljno brzo (od 30 do 100 milisekundi
svaki), onda e se objekti prikazivati i rotirati dinamiki. Da bi se poveala brzina
prikazivanja, korisnik mora da obezbedi brzo transformisanje svake take i linije na
objektu ili objektima. Jednaine rotiranja (1.6) zahtevaju 4 mnoenja i 2 sabiranja.
Treba smanjiti ove operacije, i to reorganizujui jednaine: ugao je mali (nekoliko
stepeni), tako da je cos
= 1. Ovakvom aproksimacijom, jednaine (1.6) postaju:
x
= x ysin y
= x sin +y (1.44)
29
i za njihovo reavanje treba 2 mnoenja i 2 sabiranja. Neutralisanje 2 mnoenja dopri-
nosi brzini rada raunara.
Jednaine (1.44) donose aproksimaciju samo vrednosti x
i y
, to znai da je
greka mala. Svaki put kada se jednaine primenjuju na nove vrednosti x i y, greka
postaje vea. Ako se ove jednaine primenjuju mnogo puta, greka postaje ozbiljna i
rotiranje slike poinje da lii na kolekciju proizvoljno nacrtanih linija. Ako se posmatraju
jednaine (1.44), onda je bolje da se koristi x
= x ysin
y
= x
, y
, z
, W
1 0 0 d
x
0 1 0 d
y
0 0 1 d
z
0 0 0 1
(1.46)
U tom sluaju je:
T (d
x
, d
y
, d
z
)
_
x y z 1
T
=
_
x +d
x
y +d
y
z +d
z
1
T
.
Skaliranje u 3D predstavlja jednostavno proirenje matrice za 2D transformacije:
S(s
x
, s
y
, s
z
) =
s
x
0 0 0
0 s
y
0 0
0 0 s
z
0
0 0 0 1
(1.47)
31
U tom sluaju je:
S(s
x
, s
y
, s
z
)
_
x y z 1
T
=
_
s
x
x s
y
y s
z
z 1
T
.
Jednaina (1.26), kojom je opisano rotiranje u ravni, predstavlja 3D rotiranje oko z
ose, gde je:
R
z
() =
cos sin 0 0
sin cos 0 0
0 0 1 0
0 0 0 1
(1.48)
Ovo je lako dokazati. Ako se izvri rotacija
_
1 0 0 1
T
za 90
, to predstavlja
jedinini vektor du x ose, dolazi se do jedininog vektora
_
0 1 0 1
T
du y ose.
Ako se ovo prikae brojkama, onda proizvod
0 1 0 0
1 0 0 0
0 0 1 0
0 0 0 1
1
0
0
1
1 0 0 0
0 cos sin 0
0 sin cos 0
0 0 0 1
. (1.49)
Matrica koja opisuje rotiranje oko y ose je:
R
y
() =
cos 0 sin 0
0 1 0 0
sin 0 cos 0
0 0 0 1
(1.50)
Kolone i redovi u gornjim 3 3 podmatricama matrica R
x
(), R
y
() i R
z
() pred-
stavljaju normalne jedinine vektore i te podmatrice imaju vrednost determinante 1,
to znai da su tri matrice ortogonalne, o emu je ve bilo rei. Sve tri transformacione
matrice imaju inverzne matrice. Inverzna T matrica dobija se postavljanjem negativnih
vrednosti d
x
, d
y
i d
z
; inverzna S matrica se dobija postavljanjem recipronih vrednosti
s
x
, s
y
i s
z
; inverzne R
x
, R
y
i R
z
matrice dobijaju se postavljanjem negativne vrednosti
ugla rotacije.
Neogranien broj matrica transliranja, skaliranja i rotiranja moe da se mnoi.
Rezultat tog mnoenja je proizvod koji uvek ima sledeu formu:
M =
r
11
r
12
r
13
t
x
r
21
r
22
r
23
t
y
r
31
r
32
r
33
t
z
0 0 0 1
. (1.51)
32
Kao to je to bio sluaj u 2D transformacijama, gornja leva 33 podmatrica R prikazuje
skupno rotiranje i skaliranje, gde T prikazuje sloeno transliranje. Radi poboljanja
ekasnosti neki raunarski programi preporuuju transformacije eksplicitno u formi:
= r
x
y
z
+T, (1.52)
gde su R i T podmatrice iz jednaine (1.51).
Dvodimenzionalnoj matrici smicanja odgovara 3D matrica smicanja. Smicanje
(x, y) je:
SH
xy
(sh
x
, sh
y
) =
1 0 sh
x
0
0 1 sh
y
0
0 0 1 0
0 0 0 1
(1.53)
Ako se izraz (1.53) za SH
xy
primeni na taku
_
x y z 1
T
, onda se dobija kao
odgovor
_
x +sh
x
z y +sh
y
z z 1
. Smicanja u pravcu x i y ose imaju slinu
formu.
1.3.7 Kombinovanje 3D transformacija
Sledi primer komponovanja 3D transformacione matrice. Trebalo bi transformisati dui
P
1
P
2
i P
2
P
3
na slici 1.16, od poetne do zavrne pozicije. Najpre treba taku P
1
translirati u koordinatni poetak, du P
1
P
2
treba da lei na pozitivnom delu z ose i du
P
1
P
3
treba da lei u yz ravni, u delu koji obrazuju pozitivni smerovi osa y i z. Duine
dui nisu bitne za ove transformacije.
Slika 1.16. Transformisanje taaka od poetnog do krajnjeg poloaja
Postoje dva naina da se ove transformacije predstave. Prvi nain je komponovanje
primitivnih transformacija T, R
x
, R
y
i R
z
. Ovaj nain je dui, ali se lako ilustruje
i razume. Drugi nain je korienje osobina ortogonalnih matrica, to je bre, ali i
kompleksnije.
Rad sa primitivnim transformacijama je jednostavniji i sastoji se od razbijanja
problema na jednostavnije faze. U ovom sluaju eljena transformacija moe da se
odradi u etiri koraka: 1) transliranje take P
1
u koordinatni poetak; 2) rotiranje oko
y ose kako bi du P
1
P
2
leala u yz ravni; 3) rotiranje oko x ose kako bi du P
1
P
2
legla
na pozitivan deo z ose; i 4) rotiranje oko z ose kako bi du P
1
P
3
legla u specicirani
33
deo yz ravni. Slede detaljna objanjenja svakog pojedinanog koraka.
Korak 1: Transliranje take P
1
u koordinatni poetak. Translacija je:
T (x
1
, y
1
, z
1
) =
1 0 0 x
1
0 1 0 y
1
0 0 1 z
1
0 0 0 1
. (1.54)
Primenom T na take P
1
, P
2
i P
3
dobija se:
P
1
= T (x
1
, y
1
, z
1
) P
1
=
0
0
0
1
, (1.55)
P
2
= T (x
1
, y
1
, z
1
) P
2
=
x
2
x
1
y
2
y
1
z
2
z
1
1
, (1.56)
P
3
= T (x
1
, y
1
, z
1
) P
3
=
x
3
x
1
y
3
y
1
z
3
z
1
1
. (1.57)
Korak 2: Rotacija oko y ose. Slika 1.17 pokazuje poloaj dui P
1
P
2
posle prvog
koraka, sa projekcijama ove dui na xz ravan.
Slika 1.17. Rotacija oko y ose
Ugao rotacije je (90 ) = 90. Tada je:
cos( 90) = sin =
z
2
D
1
=
z
2
z
1
D
1
sin( 90) = cos =
x
2
D
1
=
x
2
x
1
D
1
(1.58)
gde je
D
1
=
_
(z
2
)
2
+ (x
2
)
2
=
_
(z
2
z
1
)
2
+ (x
2
x
1
)
2
(1.59)
34
Kada se ove vrednosti zamene u izraz (1.50), dobija se:
P
2
= R
y
( 90) P
2
=
_
0 y
2
y
1
D
1
1
T
. (1.60)
Kao to se i oekivalo, x komponenta take P
2
je jednaka nuli, a z komponenta pred-
stavlja duinu D
1
.
Korak 3: Rotacija oko x ose. Slika 1.18 pokazuje du P
1
P
2
posle primenjenog
drugog koraka.
Slika 1.18. Rotacija oko x ose
Za ugao rotacije sledi:
cos =
z
2
D
2
sin =
y
2
D
2
(1.61)
gde D
2
= |P
1
P
2
| predstavlja duinu dui P
1
P
2
. Duina dui P
1
P
2
je jednaka duini
dui P
1
P
2
zato to transformacija rotacijom i translacijom ne utie na duinu, tako da
je:
D
2
= |P
2
P
1
| = |P
2
P
1
| =
_
(x
2
x
1
)
2
+ (y
2
y
1
)
2
+ (z
2
z
1
)
2
. (1.62)
Rezultat rotacije u treem koraku je:
P
2
= R
x
() P
2
= R
x
() R
y
( 90) P
2
=
= R
x
() R
y
( 90) T P
2
=
_
0 0 |P
1
P
2
| 1
T
. (1.63)
Na ovaj nain se dolazi do toga da se du P
1
P
2
poklapa sa pozitivnim smerom z ose.
Korak 4: Rotacija oko z ose. Slika 1.19 prikazuje dui P
1
P
2
i P
1
P
3
posle treeg
koraka, sa takom P
2
na z osi i sa takom P
3
na poziciji:
P
3
=
_
x
3
y
3
z
3
1
T
= R
x
() R
y
( 90) T (x
1
, y
1
, z
1
) P
3
(1.64)
Izvrena je rotacija za ugao , gde je:
cos =
y
3
D
3
sin =
x
3
D
3
D
3
=
_
x
3
3
+y
2
3
(1.65)
Rezultati etvrtog koraka ve su prikazani na slici 1.16 u zavrnom poloaju.
35
Slika 1.19. Rotacija oko z ose
Kompozitna matrica
R
z
() R
x
() R
y
( 90) T (x
1
, y
1
, z
1
) = R T (1.66)
denie traene transformacije, s tim to je R = R
z
() R
x
() R
y
(90). Sada treba
ovu transformaciju primeniti na take P
1
, P
2
i P
3
kako bi se verikovale predviene
izmene: taka P
1
je transformisana u koordinatni poetak, taka P
2
je transformisana
da lei na pozitivnom delu z ose, a taka P
3
je transformisana da lei u delu yz ravni
koji formiraju pozitivni delovi y i z ose.
Drugi nain za dobijanje matrice R je korienjem osobina ortogonalnih matrica.
Ako se u matrici u jednaini (1.51) preimenuju indeksi (drugi po redu) po usvojenoj
konvenciji, dolazi se do:
R =
r
1x
r
2x
r
3x
r
1y
r
2y
r
3y
r
1z
r
2z
r
3z
. (1.67)
Poto je R
z
jedinini vektor du P
1
P
2
, onda e se izvriti rotacija ka pozitivnom smeru
z ose:
R
z
=
_
r
1z
r
2z
r
3z
T
=
P
1
P
2
|P
1
P
2
|
(1.68)
Sledi da je R
x
jedinini vektor koji je normalan na ravni P
1
, P
2
i P
3
i treba ga zarotirati
do pozitivnog dela x ose, tako da R
x
mora biti normalizovan proizvodom dva vektora
u ravni:
R
x
=
_
r
1x
r
2x
r
3x
T
=
P
1
P
3
P
1
P
2
|P
1
P
3
P
1
P
2
|
(1.69)
Konano,
R
y
=
_
r
1y
r
2y
r
3y
T
= R
z
R
x
(1.70)
e rotirati do pozitivnog dela x ose. Kompozitna (sloena) matrica ima oblik:
r
1x
r
2x
r
3x
0
r
1y
r
2y
r
3y
0
r
1z
r
2z
r
3z
0
T (x
1
, y
1
, z
1
) = R T, (1.71)
gde su R i T isti kao u jednaini (1.66). Na slici 1.20 prikazani su individualni vektori
R
x
, R
y
i R
z
. Kao to je ve reeno, postoje dva naina da se transformacije predstave.
36
Prvi nain je komponovanje primitivnih transformacija, s tim to je ovo dui nain, ali
se lako ilustruje i razume. Drugi nain je pomou ortogonalnih matrica, to je bre, ali
i kompleksnije.
Slika 1.20. Jedinini vektori R
x
, R
y
i R
z
1.3.8 Transformacije kao promene koordinatnog sistema
Do sada je bilo govora o transformacijama jednog skupa taaka nekog objekta, u drugi
skup taaka, ali oba skupa taaka su se nalazila u istom koordinatnom sistemu. Sa
takvim pristupom koordinatni sistem ostaje nepromenjen i objekat se transformie u
odnosu na koordinatni poetak tekueg koordinatnog sistema. Alternativni, ali i ekviva-
lentni nain razmiljanja o transformacijama je promena i izmena koordinatnog sistema.
Ovaj nain je koristan kada se radi sa vie objekata, gde je svaki objekat denisan u
sopstvenom lokalnom koordinatnom sistemu, i kada treba te objekte iskombinovati, a
zatim i izraziti koordinate objekata u jedinstvenom, globalnom koordinatnom sistemu.
Ako se sa P
(i)
denie prezentacija take u koordinatnom sistemu i, sa P
(j)
se
denie prezentacija take u koordinatnom sistemu j, i sa P
(k)
se denie prezentacija
take u koordinatnom sistemu k, onda vai:
P
(i)
= M
ij
P
(j)
i P
(j)
= M
jk
P
(k)
(1.72)
Zamenom se dobija
P
(i)
= M
ij
P
(j)
= M
ij
M
jk
P
(k)
= M
ik
P
(k)
, (1.73)
tako da sledi
M
ik
= M
ij
M
jk
. (1.74)
Slika 1.21 prikazuje etiri razliita koordinatna sistema. Ako se obrati panja na sliku,
vidi se da je transformacija od koordinatnog sistema 2 do koordinatnog sistema 1:
M
12
= T (4, 2)
Slino ovome, sledi:
M
23
= T (2, 3) S(0, 5; 0, 5)
M
34
= T (6, 7; 1, 8) R(45
)
M
13
= M
12
M
23
T (4, 2) T (2, 3) S(0, 5; 0, 5)
37
Slika 1.21. Taka P i koordinatni sistemi 1, 2, 3 i 4
Sa slike 1.21 je jasno da taka P ima sledee koordinate:
P
(1)
= (10, 8) P
(2)
= (6, 6) P
(3)
= (8, 6) P
(4)
= (4, 2)
od koordinatnog sistema 1 do koordinatnog sistema 4, respektivno. Veoma je lako
verikovati da je:
P
(i)
= M
ij
P
(j)
za 1 i, j 4.
Treba registrovati i sledeu relaciju:
M
ij
= M
1
ji
Odatle sledi
M
21
= M
1
12
= T (4, 2)
i zbog toga je:
M
13
= M
12
M
23
,
M
1
13
= M
1
23
M
1
12
= M
32
M
21
Ve je bilo rei o levim i desnim koordinatnim sistemima. Matrica koja konvertuje take
iz jednog koordinatnog sistema (levog ili desnog) u drugi (levi ili desni) ima oblik:
M
RL
= M
LR
=
1 0 0 0
0 1 0 0
0 0 1 0
0 0 0 1
(1.75)
Ranije je spominjan sledei pristup: denisanje objekata se vrilo u svetskom koor-
dinatnom sistemu, a onda se vrilo njihovo transformisanje na eljena mesta; ovo je
malo nerealistian pristup, jer su svi objekti, inicijalno, smetani jedan iznad drugog u
istom koordinatnom sistemu. Mnogo je prirodnije da se razmilja kako je svaki objekat
denisan u sopstvenom koordinatnom sistemu, a onda se vri skaliranje, rotiranje i
transliranje kako bi se redenisale koordinate koje bi odgovorale svetskom koordinat-
nom sistemu. Neki ovakav pristup posmatraju kao posebne listove papira, sa objektima
na njima, koji mogu da se skupljaju, razvlae, rotiraju i smetaju na ravan sa aktivnim
svetskim koordinatnim sistemom. Drugi ovakav pristup posmatraju kao mogunost da
38
se ravan razvlai, skuplja i relativno premeta u odnosu na svaki papir. Matematiki,
oba gledita su identina.
Sledi jednostavan primer transliranja skupa taaka, koje deniu kuicu prikazanu
na slici 1.22, u koordinatni poetak. Ova transformacija je denisana kao T (x
1
, y
1
).
Slika 1.22. Kuica i dva koordinatna sistema
Ako se oznae dva koordinatna sistema kao na slici 1.22, vidi se da transformacija koja
prevodi koordinatni sistem 1 u koordinatni sistem 2 ima oblik:
M
21
= T (x
1
, y
1
) = T (x
1
, y
1
)
1
.
Generalno pravilo je da transformacije koje transformiu set taaka u jednom koor-
dinatnom sistemu upravo odgovaraju inverznim transformacijama prilikom promene
koordinatnog sistema u kojima su take predstavljene. Ova relacija moe da se vidi na
slici 1.23, a direktno proistie iz slike 1.9.
Slika 1.23. Originalna i transformisana kuica
Transformacije za predstavljene take u jedinstvenom koordinatnom sistemu su:
T (x
2
, y
2
) R() S(s
x
, s
y
) T (x
1
, y
1
) (1.76)
Sa slike 1.23 vidi se da transformacija koordinatnog sistema ima oblik:
M
51
= M
54
M
43
M
32
M
21
=
= [T (x
2
, y
2
) R() S(s
x
, s
y
) T (x
1
, y
1
)]
1
=
= T (x
1
, y
1
) R() S(s
1
x
, s
1
y
) T (x
2
, y
2
), (1.77)
tako da je
P
(5)
= M
51
P
(1)
= T (x
1
, y
1
) R() S(s
1
x
, s
1
y
) T (x
2
, y
2
) P
(1)
(1.78)
39
Za transformacije koordinatnih sistema vana je promena transformacija. Neka oznaka
Q
(j)
predstavlja transformaciju u koordinatnomsistemu j, i mogla bi da bude, na primer,
sloena (kompozitna) transformacija dobijena u nekom prethodnom koraku. Ako je
potrebno izraunati transformaciju Q
(i)
u koordinatnom sistemu i koja se primenjuje na
take P
(i)
u sistemu i koja treba da proizvede iste rezultate kao kada se transformacija
Q
(j)
primeni na odgovarajue take P
(j)
u sistemu j, onda za takvu jednakost vai
sledei izraz:
Q
(i)
P
(i)
= M
ij
Q
(j)
P
(j)
Zamenom
P
(i)
= M
ij
P
(j)
gornji izraz postaje:
Q
(i)
M
ij
P
(j)
= M
ij
Q
(j)
P
(j)
Pojednostavljujui gornji izraz dobija se:
Q
(i)
= M
ij
Q
(j)
M
1
ij