65
Raˇ cunarska grafika Geometrijske transformacije Vesna Marinkovi´ c Vesna Marinkovi´ c Raˇ cunarska grafika Geometrijske transformacije 1 / 64

Ra cunarska gra ka Geometrijske transformacijepoincare.matf.bg.ac.rs/~vesnap/grafika/05_geometrijske... · 2019. 11. 7. · Smicanje u ravni Transformacija pri kojoj objekat treba

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Ra cunarska gra ka Geometrijske transformacijepoincare.matf.bg.ac.rs/~vesnap/grafika/05_geometrijske... · 2019. 11. 7. · Smicanje u ravni Transformacija pri kojoj objekat treba

Racunarska grafikaGeometrijske transformacije

Vesna Marinkovic

Vesna Marinkovic Racunarska grafika Geometrijske transformacije 1 / 64

Page 2: Ra cunarska gra ka Geometrijske transformacijepoincare.matf.bg.ac.rs/~vesnap/grafika/05_geometrijske... · 2019. 11. 7. · Smicanje u ravni Transformacija pri kojoj objekat treba

Obnavljanje

Koen-Saderlandov algoritam za seckanje duzi – obnavljanje

1 Na kakav kliping region se primenjuje Koen-Saderlandov algoritam?

2 Na koliko regiona se u ovom algoritmu deli ravan? Sta svaki odbitova u 4-bitnom kodu tacke oznacava?

3 Koji kod imaju tacke u unutrasnjosti kliping regiona?

4 Sta mozemo zakljuciti ako za kodove K1 i K2 krajnjih tacaka duzivazi K1 & K2 6= 0?

5 Sta mozemo zakljuciti ako za kodove K1 i K2 krajnjih tacaka duzivazi K1 & K2 = 0?

6 Koje je vremenske slozenosti Koen-Saderlandov algoritam?

Vesna Marinkovic Racunarska grafika Geometrijske transformacije 2 / 64

Page 3: Ra cunarska gra ka Geometrijske transformacijepoincare.matf.bg.ac.rs/~vesnap/grafika/05_geometrijske... · 2019. 11. 7. · Smicanje u ravni Transformacija pri kojoj objekat treba

Obnavljanje

Sajrus-Bekov algoritam za seckanje duzi – obnavljanje

7 Na kakve kliping regione se moze primeniti Sajrus-Bekov algoritam?

8 Da bi se tacka preseka klasifikovala kao potencijalno ulazna/izlaznarazmatra se odnos koja dva vektora?

9 Kako za dati konveksni mnogougao dobiti vektore normala stranicausmerene ka spoljasnjosti?

10 Kako se određuje koja od dobijenih vrednosti za t predstavljapocetak, a koja kraj preseka duzi sa kliping regionom?

11 Koje je vremenske slozenosti Sajrus-Bekov algoritam?

12 Na kakve kliping regione se moze primeniti Liang-Barski algoritam?

Vesna Marinkovic Racunarska grafika Geometrijske transformacije 3 / 64

Page 4: Ra cunarska gra ka Geometrijske transformacijepoincare.matf.bg.ac.rs/~vesnap/grafika/05_geometrijske... · 2019. 11. 7. · Smicanje u ravni Transformacija pri kojoj objekat treba

Geometrijske transformacije Osnovni pojmovi

Geometrijske transformacije

Geometrijske transformacije igraju vaznu ulogu u:

modelovanju (dimenzionisanje i pozicioniranje elemenata),animaciji (kretanje objekata tokom vremena),transformacija iz jednog u drugi koordinatni sistem,perspektivnim i paralelnim projekcijama, . . .

Neke transformacije cuvaju neke atribute (velicinu, uglove,kolinearnost, . . .)

Vesna Marinkovic Racunarska grafika Geometrijske transformacije 4 / 64

Page 5: Ra cunarska gra ka Geometrijske transformacijepoincare.matf.bg.ac.rs/~vesnap/grafika/05_geometrijske... · 2019. 11. 7. · Smicanje u ravni Transformacija pri kojoj objekat treba

Geometrijske transformacije Osnovni pojmovi

Linearne transformacije

Za funkciju f kazemo da je linearna transformacija ako vazi:

f (v + w) = f (v) + f (w) za sve vrednosti v i w iz domena funkcije ff (cv) = cf (v) za sve skalare c i vrednosti v iz domena funkcije f

Linearne transformacije cuvaju:

koordinatni pocetak – pokazati za domacikolinearnost tacakaparalelnost pravih

U linearne transformacije spadaju skaliranje, rotacija i smicanje

Sve linearne transformacije se mogu predstaviti kao mnozenjematricom

Vesna Marinkovic Racunarska grafika Geometrijske transformacije 5 / 64

Page 6: Ra cunarska gra ka Geometrijske transformacijepoincare.matf.bg.ac.rs/~vesnap/grafika/05_geometrijske... · 2019. 11. 7. · Smicanje u ravni Transformacija pri kojoj objekat treba

Geometrijske transformacije Osnovni pojmovi

Baza vektorskog prostora

Baza vektorskog prostora dimenzije 2 je skup vektora { ~V1, ~V2} zakoje vazi:

vektori iz datog skupa su linearno nezavisnisvaki vektor iz vektorskog prostora moze se izraziti kao linearnakombinacija vektora iz ovog skupa: V = c1 ~V1 + c2 ~V2

Vektore iz ovog skupa nazivamo baznim vektorima

Vesna Marinkovic Racunarska grafika Geometrijske transformacije 6 / 64

Page 7: Ra cunarska gra ka Geometrijske transformacijepoincare.matf.bg.ac.rs/~vesnap/grafika/05_geometrijske... · 2019. 11. 7. · Smicanje u ravni Transformacija pri kojoj objekat treba

Geometrijske transformacije Osnovni pojmovi

Izvođenje matrica linearnih transformacija u ravni

Standardna baza: ~e1 =

[10

]i ~e2 =

[01

]Neka je

[a bc d

]matrica transformacije T

T (~e1) = T (

[10

]) =

[a bc d

] [10

]=

[ac

]

T (~e2) = T (

[01

]) =

[a bc d

] [01

]=

[bd

]Kolone matrice transformacije jednake su matrici transformacije Tprimenjenoj na vektore ~e1 i ~e2

Strategija za izvođenje matrica transformacija: izvodimo kolonu pokolonu matrice transformacije razmatranjem kako ona deluje navektore standardne baze

Vesna Marinkovic Racunarska grafika Geometrijske transformacije 7 / 64

Page 8: Ra cunarska gra ka Geometrijske transformacijepoincare.matf.bg.ac.rs/~vesnap/grafika/05_geometrijske... · 2019. 11. 7. · Smicanje u ravni Transformacija pri kojoj objekat treba

Geometrijske transformacije 2D transformacije

Skaliranje u ravni u odnosu na koordinatni pocetak

Tacke se mogu skalirati duz x i duz y ose

Skaliranje ne mora nuzno da bude uniformno – mozemo da skaliramopo x osi za faktor 3, a po y osi za faktor 2 (sx = 3, sy = 2)

0 1 2 3 4 5 6 7 8 9 10

1

2

3

4

5

6

x

y

(2, 1) (3, 1)

(6, 2) (9, 2)

Svojstva skaliranja:

ne cuvaju se uglovi između pravih u ravni, osim kada je sx = syako objekat ne pocinje u koordinatnom pocetku skaliranje ce gapribliziti ili udaljiti od koordinatnog pocetka

Vesna Marinkovic Racunarska grafika Geometrijske transformacije 8 / 64

Page 9: Ra cunarska gra ka Geometrijske transformacijepoincare.matf.bg.ac.rs/~vesnap/grafika/05_geometrijske... · 2019. 11. 7. · Smicanje u ravni Transformacija pri kojoj objekat treba

Geometrijske transformacije 2D transformacije

Matrica skaliranja u ravni

Izvedimo matricu skaliranja S razmatranjem na koji nacin vektori ~e1 i~e2 treba da budu transformisani:

~e1 =

[10

]→ sx · ~e1 =

[sx0

]

~e2 =

[01

]→ sy · ~e2 =

[0sy

][x ′

y ′

]=

[sx 00 sy

]·[xy

]Matrica S je dijagonalna matrica:

x ′ = sx · x

y ′ = sy · y

Vesna Marinkovic Racunarska grafika Geometrijske transformacije 9 / 64

Page 10: Ra cunarska gra ka Geometrijske transformacijepoincare.matf.bg.ac.rs/~vesnap/grafika/05_geometrijske... · 2019. 11. 7. · Smicanje u ravni Transformacija pri kojoj objekat treba

Geometrijske transformacije 2D transformacije

Rotacija u ravni oko koordinatnog pocetka

Razmatramo rotaciju oko koordinatnog pocetka za ugao ϕ

0 1 2 3 4 5 6

1

2

3

4

5

6

x

y

ϕ

Svojstva rotacije:

cuva duzine duzicuva uglove među parovima objekata

Vesna Marinkovic Racunarska grafika Geometrijske transformacije 10 / 64

Page 11: Ra cunarska gra ka Geometrijske transformacijepoincare.matf.bg.ac.rs/~vesnap/grafika/05_geometrijske... · 2019. 11. 7. · Smicanje u ravni Transformacija pri kojoj objekat treba

Geometrijske transformacije 2D transformacije

Matrica rotacije u ravni

Izvedimo matricu rotacije Rϕ razmatranjem na koji nacin ona utice navektore ~e1 i ~e2:

~e1 =

[10

]→[

cosϕsinϕ

]~e2 =

[01

]→[− sinϕcosϕ

]

x

y

e1 = (1, 0)

e′1 = (cosϕ, sinϕ)

ϕ x

y

e2 = (0, 1)e′2 = (− sinϕ, cosϕ)

ϕ

Vesna Marinkovic Racunarska grafika Geometrijske transformacije 11 / 64

Page 12: Ra cunarska gra ka Geometrijske transformacijepoincare.matf.bg.ac.rs/~vesnap/grafika/05_geometrijske... · 2019. 11. 7. · Smicanje u ravni Transformacija pri kojoj objekat treba

Geometrijske transformacije 2D transformacije

Matrica rotacije u ravni

[x ′

y ′

]=

[cosϕ − sinϕsinϕ cosϕ

]·[xy

]x ′ = x · cosϕ− y · sinϕ

y ′ = x · sinϕ+ y · cosϕ

Vesna Marinkovic Racunarska grafika Geometrijske transformacije 12 / 64

Page 13: Ra cunarska gra ka Geometrijske transformacijepoincare.matf.bg.ac.rs/~vesnap/grafika/05_geometrijske... · 2019. 11. 7. · Smicanje u ravni Transformacija pri kojoj objekat treba

Geometrijske transformacije 2D transformacije

Smicanje u ravni

Transformacija pri kojoj objekat treba iskositi u pravcu neke odkoordinatnih osa

SHx : x ′ = x + ay SHy : y ′ = y + bx

Svojstva smicanja:

jedna osa (horizontalna ili vertikalna) je fiksnane cuvaju se duzine osim na pravcu u kom se vrsi istezanjene cuvaju se uglovi

Vesna Marinkovic Racunarska grafika Geometrijske transformacije 13 / 64

Page 14: Ra cunarska gra ka Geometrijske transformacijepoincare.matf.bg.ac.rs/~vesnap/grafika/05_geometrijske... · 2019. 11. 7. · Smicanje u ravni Transformacija pri kojoj objekat treba

Geometrijske transformacije 2D transformacije

Matrice smicanja u ravni

x

y

e1 = (1, 0)

e′2e2 = (0, 1)

ϕ

a = cotϕ

Izvedimo matricu smicanja u pravcu x ose SHx razmatranjem na koji nacinona utice na vektore ~e1 i ~e2

~e1 =

[10

]→[

10

]~e2 =

[01

]→[

ctgϕ1

]gde je ϕ ugao za koji se vrsi iskosenje (oznacimo sa a = ctgϕ)

Vesna Marinkovic Racunarska grafika Geometrijske transformacije 14 / 64

Page 15: Ra cunarska gra ka Geometrijske transformacijepoincare.matf.bg.ac.rs/~vesnap/grafika/05_geometrijske... · 2019. 11. 7. · Smicanje u ravni Transformacija pri kojoj objekat treba

Geometrijske transformacije 2D transformacije

Matrice smicanja u ravni

Smicanje u pravcu x ose[x ′

y ′

]=

[1 ctgϕ0 1

]·[xy

]=

[1 a0 1

]·[xy

]x ′ = x + a · y

y ′ = y

Smicanje u pravcu y ose[x ′

y ′

]=

[1 0

ctg θ 1

]·[xy

]=

[1 0b 1

]·[xy

]x ′ = x

y ′ = y + b · x

Vesna Marinkovic Racunarska grafika Geometrijske transformacije 15 / 64

Page 16: Ra cunarska gra ka Geometrijske transformacijepoincare.matf.bg.ac.rs/~vesnap/grafika/05_geometrijske... · 2019. 11. 7. · Smicanje u ravni Transformacija pri kojoj objekat treba

Geometrijske transformacije 2D transformacije

Opsti oblik linearne transformacije

U opstem obliku matrica linearne transformacije je

[a bc d

]Ukoliko je determinanta ove matrice ad − bc jednaka nuli, onda ovutransformaciju zovemo singularna i ona nema inverz

Kod ovih transformacija kolone matrice su linearno zavisne

Ukoliko je ad − bc razlicito od nule, inverz matrice je

1ad−bc

[d −b−c a

]Za sve pomenute linearne transformacije vazi da su matriceinvertibilne

Vesna Marinkovic Racunarska grafika Geometrijske transformacije 16 / 64

Page 17: Ra cunarska gra ka Geometrijske transformacijepoincare.matf.bg.ac.rs/~vesnap/grafika/05_geometrijske... · 2019. 11. 7. · Smicanje u ravni Transformacija pri kojoj objekat treba

Geometrijske transformacije 2D transformacije

Translacija u ravni

Nije linearna transformacija, te se ne moze predstaviti kao mnozenjematricom

Translaciju je moguce predstaviti koriscenjem sabiranja:

x ′ = x + tx

y ′ = y + ty[x ′

y ′

]=

[xy

]+

[txty

]Sabiranje sa vektorom nije konzistentno sa mnozenjem matricomtransformacije

Pozeljno je sve transformacije predstaviti na isti nacin da bismokombinaciju transformacija izrazili kao kompoziciju njihovih matrica

Vesna Marinkovic Racunarska grafika Geometrijske transformacije 17 / 64

Page 18: Ra cunarska gra ka Geometrijske transformacijepoincare.matf.bg.ac.rs/~vesnap/grafika/05_geometrijske... · 2019. 11. 7. · Smicanje u ravni Transformacija pri kojoj objekat treba

Geometrijske transformacije 2D transformacije

Homogene koordinate u ravni

Zelimo da translacija (v ′ = v + T ), skaliranje (v ′ = S · v), rotacija(v ′ = R · v) i smicanje (v ′ = SH · v) imaju istu formu

Koristeci homogene koordinate ove transformacije imaju formumnozenja matrica

Tacka u ravni se predstavlja trojkom vrednosti (x , y ,W )

Bar jedna od vrednosti x , y , W nije jednaka 0

Dve trojke (x , y ,W ) i (x ′, y ′,W ′) predstavljaju istu tacku ako postojibroj t takav da je x = tx ′, y = ty ′ i W = tW ′

Ako je W 6= 0, onda tacku (x , y ,W ) mozemo predstaviti u obliku(x/W , y/W , 1) – homogenizacija

(x/W , y/W ) zovemo Dekartovim koordinatama homogene tacke

Vesna Marinkovic Racunarska grafika Geometrijske transformacije 18 / 64

Page 19: Ra cunarska gra ka Geometrijske transformacijepoincare.matf.bg.ac.rs/~vesnap/grafika/05_geometrijske... · 2019. 11. 7. · Smicanje u ravni Transformacija pri kojoj objekat treba

Geometrijske transformacije 2D transformacije

Homogene koordinate u ravni

Tacka (x , y , 0) je beskonacno daleka tacka u pravcu (x , y)Homogenim tackama u ravni odgovaraju trojke vrednosti, a te trojkeodgovaraju tackama u Dekartovom prostoruSkupu svih trojki kojima odgovara jedna homogena tacka odgovaraprava Dekartovog prostora: sve tacke oblika (tx , ty , tW ) (t 6= 0)pripadaju jednoj pravoj Dekartovog prostoraAko homogenizujemo tacku, dobijamo njenu reprezentaciju(x/W , y/W , 1) koja u Dekartovom smislu pripada ravni W = 1

W

P

Y

X

1(x/W , y/W , 1)

(x , y ,W )

Vesna Marinkovic Racunarska grafika Geometrijske transformacije 19 / 64

Page 20: Ra cunarska gra ka Geometrijske transformacijepoincare.matf.bg.ac.rs/~vesnap/grafika/05_geometrijske... · 2019. 11. 7. · Smicanje u ravni Transformacija pri kojoj objekat treba

Geometrijske transformacije 2D transformacije

2D transformacije u homogenim koordinatama

Tacku v =

xy1

zelimo da preslikamo u tacku v ′ =

x ′

y ′

1

U slucaju linearnih transformacija potrebno je “ugraditi” 2× 2matricu transformacije u gornji levi ugao 3× 3 jedinicne matrice: a b 0

c d 00 0 1

U slucaju translacije potrebno je “ugraditi” vektor translacije u trecukolonu jedinicne matrice: 1 0 tx

0 1 ty0 0 1

Proveriti!

Vesna Marinkovic Racunarska grafika Geometrijske transformacije 20 / 64

Page 21: Ra cunarska gra ka Geometrijske transformacijepoincare.matf.bg.ac.rs/~vesnap/grafika/05_geometrijske... · 2019. 11. 7. · Smicanje u ravni Transformacija pri kojoj objekat treba

Geometrijske transformacije 2D transformacije

Inverzne transformacije

Sve pomenute matrice transformacija su invertibilne

Transformacija inverzna skaliranju u odnosu na koordinatni pocetakza faktore sx i sy je skaliranje u odnosu na koordinatni pocetak zafaktore 1

sxi 1sy

Transformacija inverzna rotaciji oko koordinatnog pocetka za ugao ϕje rotacija oko koordinatnog pocetka za ugao −ϕ (inverz matricerotacije je njen transponat)

Transformacija inverzna smicanju sa koeficijentom a u pravcu nekekoordinatne ose je smicanje sa koeficijentom −a u pravcu iste ose

Transformacija inverzna translaciji za vektor [tx ty ]T je translacija zavektor [−tx − ty ]T

Vesna Marinkovic Racunarska grafika Geometrijske transformacije 21 / 64

Page 22: Ra cunarska gra ka Geometrijske transformacijepoincare.matf.bg.ac.rs/~vesnap/grafika/05_geometrijske... · 2019. 11. 7. · Smicanje u ravni Transformacija pri kojoj objekat treba

Geometrijske transformacije 2D transformacije

Kompozicija transformacija

Slozenije transformacije formiramo izracunavanjem kompozicijematrica transformacija

Primer: transformaciji kojom se tacka skalira oko koordinatnogpocetka sa faktorima sx i sy , nakon toga rotira oko koordinatnogpocetka za ugao ϕ, a zatim translira za vektor [tx ty ] odgovaramatrica transformacije: 1 0 tx

0 1 ty0 0 1

· cosϕ − sinϕ 0

sinϕ cosϕ 00 0 1

· sx 0 0

0 sy 00 0 1

Vesna Marinkovic Racunarska grafika Geometrijske transformacije 22 / 64

Page 23: Ra cunarska gra ka Geometrijske transformacijepoincare.matf.bg.ac.rs/~vesnap/grafika/05_geometrijske... · 2019. 11. 7. · Smicanje u ravni Transformacija pri kojoj objekat treba

Geometrijske transformacije 2D transformacije

Kompozicija transformacija

Vazne napomene:

matrice se primenjuju zdesna ulevobitan je poredak matrica, mnozenje matrica u opstem slucaju nijekomutativno

Primer: razlicit rezultat ako prvo vrsimo rotaciju, pa translaciju uodnosu na to ako prvo vrsimo translaciju, pa rotaciju

Vesna Marinkovic Racunarska grafika Geometrijske transformacije 23 / 64

Page 24: Ra cunarska gra ka Geometrijske transformacijepoincare.matf.bg.ac.rs/~vesnap/grafika/05_geometrijske... · 2019. 11. 7. · Smicanje u ravni Transformacija pri kojoj objekat treba

Geometrijske transformacije 2D transformacije

Kompozicija transformacija

Kompozicija dve transformacije istog tipa je transformacija istog tipa

Kompozicija dve translacije je translacija 1 0 t ′x0 1 t ′y0 0 1

· 1 0 t ′′x

0 1 t ′′y0 0 1

=

1 0 t ′x + t ′′x0 1 t ′y + t ′′y0 0 1

Kompozicija dva skaliranja u odnosu na koordinatni pocetak jeskaliranje u odnosu na koordinatni pocetak s ′x 0 0

0 s ′y 00 0 1

· s ′′x 0 0

0 s ′′y 00 0 1

=

s ′x · s ′′x 0 00 s ′y · s ′′y 00 0 1

Vesna Marinkovic Racunarska grafika Geometrijske transformacije 24 / 64

Page 25: Ra cunarska gra ka Geometrijske transformacijepoincare.matf.bg.ac.rs/~vesnap/grafika/05_geometrijske... · 2019. 11. 7. · Smicanje u ravni Transformacija pri kojoj objekat treba

Geometrijske transformacije 2D transformacije

Kompozicija transformacija

Kompozicija dve rotacije oko koordinatnog pocetka je rotacija okokoordinatnog pocetka

cosα − sinα 0sinα cosα 00 0 1

· cosβ − sinβ 0

sinβ cosβ 00 0 1

=

cos(α+ β) − sin(α+ β) 0sin(α+ β) cos(α+ β) 0

0 0 1

Kompozicija dva smicanja u pravcu iste koordinatne ose je smicanje upravcu iste koordinatne ose 1 a1 0

0 1 00 0 1

·

1 a2 00 1 00 0 1

=

1 a1 + a2 00 1 00 0 1

Vesna Marinkovic Racunarska grafika Geometrijske transformacije 25 / 64

Page 26: Ra cunarska gra ka Geometrijske transformacijepoincare.matf.bg.ac.rs/~vesnap/grafika/05_geometrijske... · 2019. 11. 7. · Smicanje u ravni Transformacija pri kojoj objekat treba

Geometrijske transformacije 2D transformacije

Transformacije koje nisu u odnosu na koordinatni pocetak

Rotacija oko tacke P(m, n) (koja nije koordinatni pocetak) za ugao ϕmoze se izvesti na sledeci nacin:

transliraj tacku P u koordinatni pocetakrotiraj oko koordinatnog pocetka za ugao ϕtransliraj koordinatni pocetak u tacku P

Tm,n · Rϕ · T−m,−n = 1 0 m0 1 n0 0 1

·

cosϕ − sinϕ 0sinϕ cosϕ 0

0 0 1

·

1 0 −m0 1 −n0 0 1

=

cosϕ − sinϕ m(1 − cosϕ) + n sinϕsinϕ cosϕ n(1 − cosϕ) −m sinϕ

0 0 1

Vesna Marinkovic Racunarska grafika Geometrijske transformacije 26 / 64

Page 27: Ra cunarska gra ka Geometrijske transformacijepoincare.matf.bg.ac.rs/~vesnap/grafika/05_geometrijske... · 2019. 11. 7. · Smicanje u ravni Transformacija pri kojoj objekat treba

Geometrijske transformacije 2D transformacije

Transformacije koje nisu u odnosu na koordinatni pocetak

Analogno bi se razmatralo skaliranje u odnosu na tacku koja nijekoordinatni pocetak (npr. hocemo da se pri skaliranju ne promenicentar objekta)

Vesna Marinkovic Racunarska grafika Geometrijske transformacije 27 / 64

Page 28: Ra cunarska gra ka Geometrijske transformacijepoincare.matf.bg.ac.rs/~vesnap/grafika/05_geometrijske... · 2019. 11. 7. · Smicanje u ravni Transformacija pri kojoj objekat treba

Geometrijske transformacije 2D transformacije

Inverz kompozicije transformacija

Inverz kompozicije transformacija je kompozicija inverza pojedinacnihtransformacija u obrnutom redosledu:

(M1M2 · . . . ·Mn)−1 = M−1n · . . . ·M−12 M−11

Vesna Marinkovic Racunarska grafika Geometrijske transformacije 28 / 64

Page 29: Ra cunarska gra ka Geometrijske transformacijepoincare.matf.bg.ac.rs/~vesnap/grafika/05_geometrijske... · 2019. 11. 7. · Smicanje u ravni Transformacija pri kojoj objekat treba

Geometrijske transformacije 2D transformacije

Efikasnost izracunavanja

Umesto da za svaku tacku primenjujemo mnozenje nizom matrica,racunamo matricu kompozicije

Pokusavamo da iskoristimo specificnu formu matrice kompozicije

Cesto su matrice transformacije u ravni oblika: a b txc d ty0 0 1

pa je umesto mnozenja matrica i rada sa homogenim koordinatamadovoljno koristiti jednakosti:

x ′ = x · a + y · b + tx

y ′ = x · c + y · d + ty

Za transformacije slozenih objekata u realnom vremenu potrebno jevoditi racuna o svakom mnozenju!

Vesna Marinkovic Racunarska grafika Geometrijske transformacije 29 / 64

Page 30: Ra cunarska gra ka Geometrijske transformacijepoincare.matf.bg.ac.rs/~vesnap/grafika/05_geometrijske... · 2019. 11. 7. · Smicanje u ravni Transformacija pri kojoj objekat treba

Geometrijske transformacije 2D transformacije

Efikasnost izracunavanja – primer

Formule rotacije u ravni oko koordinatnog pocetka:

x ′ = x · cosϕ− y · sinϕ

y ′ = x · sinϕ+ y · cosϕ

Ako je ugao ϕ mali, cosϕ se moze aproksimirati vrednoscu 1:

x ′ = x − y · sinϕ

y ′ = x · sinϕ+ y

Da bi se smanjilo nagomilavanje greske, bolje je u drugoj jednakostikoristiti x ′ umesto x :

y ′ = x ′ · sinϕ+ y = (x − y · sinϕ) · sinϕ+ y = x · sinϕ+ y(1− sin2 ϕ)

jer je determinanta

∣∣∣∣ 1 − sinϕsinϕ 1− sin2 ϕ

∣∣∣∣ = 1

Isplati se uloziti trud i analizirati dobijenu matricu transformacije

Vesna Marinkovic Racunarska grafika Geometrijske transformacije 30 / 64

Page 31: Ra cunarska gra ka Geometrijske transformacijepoincare.matf.bg.ac.rs/~vesnap/grafika/05_geometrijske... · 2019. 11. 7. · Smicanje u ravni Transformacija pri kojoj objekat treba

Geometrijske transformacije Izometrijske i afine transformacije

Izometrijske transformacije

Izometrijska transformacija je geometrijska transformacija koja cuvarastojanje između tacaka

Matrica je ortogonalna ako vektori koji cine njene kolone predstavljajuortonormiranu bazu:

intenzitet svake kolone jednak je 1skalarni proizvod svake dve kolone jednak je 0

Analogno vazi i za vrste ortogonalne matrice

Izometrijskoj transformaciji odgovara matrica oblika: a b txc d ty0 0 1

gde je njena gornja leva 2× 2 podmatrica ortogonalna, tj. vazi:

a2 + c2 = 1, b2 + d2 = 1, ab + cd = 0

I obratno, ovakvim matricama odgovaraju izometrijske transformacije

Vesna Marinkovic Racunarska grafika Geometrijske transformacije 31 / 64

Page 32: Ra cunarska gra ka Geometrijske transformacijepoincare.matf.bg.ac.rs/~vesnap/grafika/05_geometrijske... · 2019. 11. 7. · Smicanje u ravni Transformacija pri kojoj objekat treba

Geometrijske transformacije Izometrijske i afine transformacije

Izometrijske transformacije – svojstva

Izometrijske transformacije cuvaju uglove i duzine

Nazivaju se i transformacije cvrstih tela (rigid-body)

U izometrijske transformacije spadaju translacija, rotacija, simetrije(centralna, osna)

Kompozicija izometrijskih transformacija je izometrijskatransformacija

Transformacija inverzna izometrijskoj transformaciji je izometrijskatransformacija

Vesna Marinkovic Racunarska grafika Geometrijske transformacije 32 / 64

Page 33: Ra cunarska gra ka Geometrijske transformacijepoincare.matf.bg.ac.rs/~vesnap/grafika/05_geometrijske... · 2019. 11. 7. · Smicanje u ravni Transformacija pri kojoj objekat treba

Geometrijske transformacije Izometrijske i afine transformacije

Direktne i indirektne izometrijske transformacije

Izometrijska transformacija ravni je direktna ako cuva orijentacijuravni, tj. svaki trougao te ravni preslikava u trougao iste orijentacije

Izometrijska transformacija ravni je indirektna ako svaki trougao teravni preslikava u trougao suprotne orijentacije

Za utvrđivanje da li je izometrijska transformacija direktna iliindirektna dovoljno je izvrsiti proveru za jedan trougao

Orijentacija trougla se utvrđuje racunanjem vektorskog proizvoda

Rotacija i translacija spadaju u direktne izometrijske transformacije, anpr. osna refleksija u indirektne

Vesna Marinkovic Racunarska grafika Geometrijske transformacije 33 / 64

Page 34: Ra cunarska gra ka Geometrijske transformacijepoincare.matf.bg.ac.rs/~vesnap/grafika/05_geometrijske... · 2019. 11. 7. · Smicanje u ravni Transformacija pri kojoj objekat treba

Geometrijske transformacije Izometrijske i afine transformacije

Afine transformacije

Afine transformacije su transformacije koje cuvaju kolinearnost,odnose rastojanja između kolinearnih tacaka i paralelnost

Afine transformacije ne cuvaju nuzno uglove i duzine

U afine transformacije spadaju translacija, rotacija, skaliranje,smicanje

Translacija i rotacija su i izometrijske transformacije, dok skaliranje ismicanje nisu

Proizvoljni niz rotacija/translacija/skaliranja/smicanja je afinatransformacija

Vesna Marinkovic Racunarska grafika Geometrijske transformacije 34 / 64

Page 35: Ra cunarska gra ka Geometrijske transformacijepoincare.matf.bg.ac.rs/~vesnap/grafika/05_geometrijske... · 2019. 11. 7. · Smicanje u ravni Transformacija pri kojoj objekat treba

Geometrijske transformacije Izometrijske i afine transformacije

Predstavljanje afine transformacije

S obzirom na to da se matrica afinih transformacija moze zapisati kao: a b txc d ty0 0 1

=

[T ∗ t∗

0 1

]vazi da se svaka afina transformacija u ravni moze predstaviti kaokompozicija jedne linearne transformacije i jedne translacije:[

x ′

y ′

]= T ∗

[xy

]+ t∗

Vesna Marinkovic Racunarska grafika Geometrijske transformacije 35 / 64

Page 36: Ra cunarska gra ka Geometrijske transformacijepoincare.matf.bg.ac.rs/~vesnap/grafika/05_geometrijske... · 2019. 11. 7. · Smicanje u ravni Transformacija pri kojoj objekat treba

Geometrijske transformacije Preslikavanje slike u prozor

??

Vesna Marinkovic Racunarska grafika Geometrijske transformacije 36 / 64

Page 37: Ra cunarska gra ka Geometrijske transformacijepoincare.matf.bg.ac.rs/~vesnap/grafika/05_geometrijske... · 2019. 11. 7. · Smicanje u ravni Transformacija pri kojoj objekat treba

Geometrijske transformacije Preslikavanje slike u prozor

Problem preslikavanja slike u prozor

Jedan od standardnih zadataka u racunarskoj grafici je preslikati figuru izjednog koordinatnog sistema u drugi

Primer: preslikati sliku iz nekog koordinatnog sistema u prozor ekrana

Preslikavamo sadrzaj pravougaonika sa levim donjim temenom (xmin, ymin) igornjim desnim temenom (xmax , ymax) u koordinatnom sistemu (x , y) upravougaonik sa levim donjim temenom (umin, vmin) i gornjim desnimtemenom (umax , vmax) u koordinatnom sistemu (u, v)

x

y

x

y

u

v

u

v

translacija Tx skaliranje Sxu translacija Tu

Vesna Marinkovic Racunarska grafika Geometrijske transformacije 36 / 64

Page 38: Ra cunarska gra ka Geometrijske transformacijepoincare.matf.bg.ac.rs/~vesnap/grafika/05_geometrijske... · 2019. 11. 7. · Smicanje u ravni Transformacija pri kojoj objekat treba

Geometrijske transformacije Preslikavanje slike u prozor

Resenje problema preslikavanja slike u prozor

Primenjujemo translaciju koja tacku (xmin, ymin) preslikava u tacku (0, 0):

Tx =

1 0 −xmin

0 1 −ymin

0 0 1

Primenjujemo skaliranje u odnosu na (0, 0) kojim se velicina prvog pravougaonikasvodi na velicinu drugog pravougaonika:

Sxu =

umax−uminxmax−xmin

0 0

0 vmax−vminymax−ymin

0

0 0 1

Primenjujemo translaciju koja tacku (0, 0) preslikava u tacku (umin, vmin):

Tu =

1 0 umin

0 1 vmin

0 0 1

Mxu = TuSxuTx

Vesna Marinkovic Racunarska grafika Geometrijske transformacije 37 / 64

Page 39: Ra cunarska gra ka Geometrijske transformacijepoincare.matf.bg.ac.rs/~vesnap/grafika/05_geometrijske... · 2019. 11. 7. · Smicanje u ravni Transformacija pri kojoj objekat treba

Geometrijske transformacije 3D transformacije

Dimenzija++ (homogene koordinate za 3D prostor)

Tacka 3D prostora predstavlja se cetvorkom (x , y , z ,W )

Dve cetvorke predstavljaju istu tacku ako i samo ako je jedna cetvorkaumnozak druge

Cetvorka (0, 0, 0, 0) nije dozvoljena

Standardna reprezentacija za tacku (x , y , z ,W ), W 6= 0, je(x/W , y/W , z/W , 1)

Skupu svih cetvorki kojima odgovara jedna homogena tacka odgovaraprava u 4-dimenzionom prostoru: sve tacke oblika (tx , ty , tz , tW )(t 6= 0) pripadaju jednoj pravoj 4D prostora

Transformacije u homogenim koordinatama su predstavljenematricama dimenzije 4× 4

Vesna Marinkovic Racunarska grafika Geometrijske transformacije 38 / 64

Page 40: Ra cunarska gra ka Geometrijske transformacijepoincare.matf.bg.ac.rs/~vesnap/grafika/05_geometrijske... · 2019. 11. 7. · Smicanje u ravni Transformacija pri kojoj objekat treba

Geometrijske transformacije 3D transformacije

Pozitivno orijentisani koordinatni sistem

Razmatracemo pozitivno orijentisan koordinatni sistem

Uvek pisemo koordinate u istom (ciklickom) poretku xyz

Ako razmatramo rotaciju oko x ose, rotiramo +y ka +zAko razmatramo rotaciju oko y ose, rotiramo +z ka +xAko razmatramo rotaciju oko z ose, rotiramo +x ka +y

Vesna Marinkovic Racunarska grafika Geometrijske transformacije 39 / 64

Page 41: Ra cunarska gra ka Geometrijske transformacijepoincare.matf.bg.ac.rs/~vesnap/grafika/05_geometrijske... · 2019. 11. 7. · Smicanje u ravni Transformacija pri kojoj objekat treba

Geometrijske transformacije 3D transformacije

Translacija u 3D prostoru

Matrica translacije:x ′

y ′

z ′

1

=

1 0 0 tx0 1 0 ty0 0 1 tz0 0 0 1

·

xyz1

Kompozicija dve translacije je translacija

Transformacija inverzna translaciji je translacija

Vesna Marinkovic Racunarska grafika Geometrijske transformacije 40 / 64

Page 42: Ra cunarska gra ka Geometrijske transformacijepoincare.matf.bg.ac.rs/~vesnap/grafika/05_geometrijske... · 2019. 11. 7. · Smicanje u ravni Transformacija pri kojoj objekat treba

Geometrijske transformacije 3D transformacije

Skaliranje u 3D prostoru

Matrica skaliranja u odnosu na koordinatni pocetak:x ′

y ′

z ′

1

=

sx 0 0 00 sy 0 00 0 sz 00 0 0 1

·

xyz1

Kompozicija dva skaliranja u odnosu na koordinatni pocetak jeskaliranje u odnosu na koordinatni pocetak

Transformacija inverzna skaliranju je skaliranje

Vesna Marinkovic Racunarska grafika Geometrijske transformacije 41 / 64

Page 43: Ra cunarska gra ka Geometrijske transformacijepoincare.matf.bg.ac.rs/~vesnap/grafika/05_geometrijske... · 2019. 11. 7. · Smicanje u ravni Transformacija pri kojoj objekat treba

Geometrijske transformacije 3D transformacije

Rotacija u 3D prostoru

U 2D prostoru postoji samo rotacija oko proizvoljne tacke

U 3D prostoru se objekat moze rotirati oko proizvoljnog vektoraa = [ax ay az ]T – osa rotacije

Rodrigezova formula:

cosϕ+ a2x (1− cosϕ) axay (1− cosϕ)− az sinϕ axaz (1− cosϕ) + ay sinϕaxay (1− cosϕ) + az sinϕ cosϕ+ a2y (1− cosϕ) ayaz (1− cosϕ)− ax sinϕaxaz (1− cosϕ)− ay sinϕ ayaz (1− cosϕ) + ax sinϕ cosϕ+ a2z (1− cosϕ)

Rotacija se moze predstaviti i kao kompozicija tri rotacije:

oko x ose u Oyz ravni za ugao ϕ1

oko y ose u Oxz ravni za ugao ϕ2

oko z ose u Oxy ravni za ugao ϕ3

Ova tri ugla nazivaju se Ojlerovi uglovi

Vesna Marinkovic Racunarska grafika Geometrijske transformacije 42 / 64

Page 44: Ra cunarska gra ka Geometrijske transformacijepoincare.matf.bg.ac.rs/~vesnap/grafika/05_geometrijske... · 2019. 11. 7. · Smicanje u ravni Transformacija pri kojoj objekat treba

Geometrijske transformacije 3D transformacije

Rotacije oko koordinatnih osa

Matrica rotacije oko z ose:

x ′

y ′

z ′

1

=

cosϕ − sinϕ 0 0sinϕ cosϕ 0 0

0 0 1 00 0 0 1

·

xyz1

Matrica rotacije oko x ose:

x ′

y ′

z ′

1

=

1 0 0 00 cosϕ − sinϕ 00 sinϕ cosϕ 00 0 0 1

·

xyz1

Matrica rotacije oko y ose:

x ′

y ′

z ′

1

=

cosϕ 0 sinϕ 0

0 1 0 0− sinϕ 0 cosϕ 0

0 0 0 1

·

xyz1

Vesna Marinkovic Racunarska grafika Geometrijske transformacije 43 / 64

Page 45: Ra cunarska gra ka Geometrijske transformacijepoincare.matf.bg.ac.rs/~vesnap/grafika/05_geometrijske... · 2019. 11. 7. · Smicanje u ravni Transformacija pri kojoj objekat treba

Geometrijske transformacije 3D transformacije

Rotacije oko proizvoljne ose

Matricu rotacije oko proizvoljne ose mozemo dobiti kao kompoziciju matricatransformacija oko koordinatnih osa

Pojednostavljujemo problem: slikamo osu a u jednu od koordinatnih osa

1 racunamo ugao Θ za koji treba izvrsiti rotaciju oko y ose kako bi osa adosla u ravan Oxy

2 racunamo ugao Φ za koji treba izvrsiti rotaciju oko z ose da bi se osa aporavnala sa x osom

3 osa a je poravnata sa x osom te se vrsi rotacija oko x ose za ugao ϕ4 izvodimo transformacije inverzne transformacijama poravnanja

Vesna Marinkovic Racunarska grafika Geometrijske transformacije 44 / 64

Page 46: Ra cunarska gra ka Geometrijske transformacijepoincare.matf.bg.ac.rs/~vesnap/grafika/05_geometrijske... · 2019. 11. 7. · Smicanje u ravni Transformacija pri kojoj objekat treba

Geometrijske transformacije 3D transformacije

Smicanje u 3D prostoru

U 3D prostoru smicanje najcesce podrazumeva iskosenje objekta usmeru paralelnom nekoj koordinatnoj ravni (duz neke koordinatne ose)

Matrica smicanja:

1 shxy shxz 0

shyx 1 shyz 0shzx shzy 1 0

0 0 0 1

Vesna Marinkovic Racunarska grafika Geometrijske transformacije 45 / 64

Page 47: Ra cunarska gra ka Geometrijske transformacijepoincare.matf.bg.ac.rs/~vesnap/grafika/05_geometrijske... · 2019. 11. 7. · Smicanje u ravni Transformacija pri kojoj objekat treba

Geometrijske transformacije 3D transformacije

Smicanje u 3D prostoru

Razmotrimo smicanje kocke u pravcu koordinatne ravni Oxz : stranakocke koja lezi u Oxz ravni se ne menja, dok se strana koja lezi uravni y = 1 translira za vektor (a, b)

Koordinatni pocetak i jedinicni vektor u smeru x i z koordinatne osese ne menjaju

Matrica smicanja u pravcu Oxz ravni (duz y ose):1 a 0 00 1 0 00 b 1 00 0 0 1

Korisne su za generisanje projekcija (na primer, kako nacrtati 3Dkocku na 2D ekranu)

Vesna Marinkovic Racunarska grafika Geometrijske transformacije 46 / 64

Page 48: Ra cunarska gra ka Geometrijske transformacijepoincare.matf.bg.ac.rs/~vesnap/grafika/05_geometrijske... · 2019. 11. 7. · Smicanje u ravni Transformacija pri kojoj objekat treba

Geometrijske transformacije 3D transformacije

Kompozicije transformacija u 3D prostoru

Svakoj kompoziciji rotacija, skaliranja, translacija i smicanja u 3Dprostoru odgovara matrica oblika:

r11 r12 r13 txr21 r22 r23 tyr31 r32 r33 tz0 0 0 1

=

[R∗ t∗

0 1

]

gde matrica R∗ opisuje kombinovani efekat rotacija, skaliranja ismicanja, a t∗ vektor koji opisuje kombinovani efekat svih translacija

Umesto mnozenja matricom 4× 4, moze se koristiti efikasnijeizracunavanje: x ′

y ′

z ′

= R∗

xyz

+ t∗

Vesna Marinkovic Racunarska grafika Geometrijske transformacije 47 / 64

Page 49: Ra cunarska gra ka Geometrijske transformacijepoincare.matf.bg.ac.rs/~vesnap/grafika/05_geometrijske... · 2019. 11. 7. · Smicanje u ravni Transformacija pri kojoj objekat treba

Geometrijske transformacije 3D transformacije

Preslikavanje trojke tacaka u njoj podudarnu trojku

Zadatak: odrediti transformaciju koja preslikava trojku tacaka(P1,P2,P3) u podudarnu trojku tacaka (P ′1,P

′2,P

′3), tako da vazi:

P ′1 je koordinatni pocetak

duz P ′1P

′2 pripada pozitivnom delu z ose

duz P ′1P

′3 lezi u delu Oyz ravni u kome je pozitivna vrednost y

koordinate

Ukoliko su tri zadate tacke nekolinearne postoji tacno jedna takvadirektna izometrija

zx

y

P1

P3

P2

zx

y

P1′P3′

P2′

Vesna Marinkovic Racunarska grafika Geometrijske transformacije 48 / 64

Page 50: Ra cunarska gra ka Geometrijske transformacijepoincare.matf.bg.ac.rs/~vesnap/grafika/05_geometrijske... · 2019. 11. 7. · Smicanje u ravni Transformacija pri kojoj objekat treba

Geometrijske transformacije 3D transformacije

Preslikavanje trojke tacaka u njoj podudarnu trojku

Dva pristupa resavanju ovog problema:

kombinovanjem primitivnih rotacija i translacijaneposrednim određivanjem koeficijenata matrice transformacije

Prvi pristup prati ideju da tezak problem izdelimo na jednostavnijepotprobleme

Zeljena transformacija se moze izvesti u cetiri koraka:

1 translirati P1 u koordinatni pocetak2 rotirati oko y ose tako da P1P2 pripada Oyz ravni3 rotirati oko x ose tako da P1P2 pripada pozitivnom delu z ose4 rotirati oko z ose tako da P1P3 pripada delu Oyz ravni u kom je

pozitivna vrednost y koordinate

Vesna Marinkovic Racunarska grafika Geometrijske transformacije 49 / 64

Page 51: Ra cunarska gra ka Geometrijske transformacijepoincare.matf.bg.ac.rs/~vesnap/grafika/05_geometrijske... · 2019. 11. 7. · Smicanje u ravni Transformacija pri kojoj objekat treba

Geometrijske transformacije 3D transformacije

Preslikavanje trojke tacaka u njoj podudarnu trojku, prvarotacija

Rotacija oko y ose: duz P ′1P′2 se obara u ravan Oyz tako sto se

projekcija duzi P ′1P′2 na ravan Oxz rotira do pozitivnog dela z ose

Ugao za koji se vrsi rotacija jednak je −(90◦ −Θ) = Θ− 90◦

Vesna Marinkovic Racunarska grafika Geometrijske transformacije 50 / 64

Page 52: Ra cunarska gra ka Geometrijske transformacijepoincare.matf.bg.ac.rs/~vesnap/grafika/05_geometrijske... · 2019. 11. 7. · Smicanje u ravni Transformacija pri kojoj objekat treba

Geometrijske transformacije 3D transformacije

Preslikavanje trojke tacaka u njoj podudarnu trojku, drugarotacija

Rotacija oko x ose: P ′′1P′′2 se rotacijom za pozitivan ugao Φ dovodi na

poklapanje sa pozitivnim delom z ose

Vesna Marinkovic Racunarska grafika Geometrijske transformacije 51 / 64

Page 53: Ra cunarska gra ka Geometrijske transformacijepoincare.matf.bg.ac.rs/~vesnap/grafika/05_geometrijske... · 2019. 11. 7. · Smicanje u ravni Transformacija pri kojoj objekat treba

Geometrijske transformacije 3D transformacije

Preslikavanje trojke tacaka u njoj podudarnu trojku, trecarotacija

Rotacija oko z ose: projekcija duzi P ′′′1 P ′′′3 na ravan Oxy se rotira zapozitivni ugao α u pozitivan deo y ose, dovodeci time duz P ′′′1 P ′′′3 uravan Oyz

Rezultujuca matrica je oblika:T = Rz(α) · Rx(Φ) · Ry (Θ− 90) · T−x1,−y1,−z1

Vesna Marinkovic Racunarska grafika Geometrijske transformacije 52 / 64

Page 54: Ra cunarska gra ka Geometrijske transformacijepoincare.matf.bg.ac.rs/~vesnap/grafika/05_geometrijske... · 2019. 11. 7. · Smicanje u ravni Transformacija pri kojoj objekat treba

Geometrijske transformacije 3D transformacije

Preslikavanje tacaka, pravih i ravni

Matrice transformacija određuju slike pojedinacnih tacaka

Slika prave:

prava određena slikama dve tacke polazne prave

Slika ravni:

ravan određena slikama tri nekolinearne tacke polazne ravni

Vesna Marinkovic Racunarska grafika Geometrijske transformacije 53 / 64

Page 55: Ra cunarska gra ka Geometrijske transformacijepoincare.matf.bg.ac.rs/~vesnap/grafika/05_geometrijske... · 2019. 11. 7. · Smicanje u ravni Transformacija pri kojoj objekat treba

Geometrijske transformacije Promena koordinatnog sistema

Transformacije kao promena koordinatnog sistema

Do sada su transformacije koriscene za preslikavanje skupa tacakajednog koordinatnog sistema u isti taj koordinatni sistem – objekat jetransformisan, a koordinatni sistem je ostajao isti

Transformaciju mozemo posmatrati i kao promenu koordinatnogsistema – objekat se ne transformise, vec se racunaju njegovekoordinate u novom koordinatnom sistemu

Prvi pristup je pogodniji kada se objekat krece; drugi kada viseobjekata u svojim pojedinacnim koordinatnim sistemima trebaobjediniti u jedinstven koordinatni sistem

Vesna Marinkovic Racunarska grafika Geometrijske transformacije 54 / 64

Page 56: Ra cunarska gra ka Geometrijske transformacijepoincare.matf.bg.ac.rs/~vesnap/grafika/05_geometrijske... · 2019. 11. 7. · Smicanje u ravni Transformacija pri kojoj objekat treba

Geometrijske transformacije Promena koordinatnog sistema

Primer promene koordinatnog sistema

Tricikl je opisan u svom koordinatnom sistemu

Zelimo da odredimo koordinate jedne tacke na prednjem tocku dok setocak okrece

Menjamo koordinatni sistem – biramo onaj u kojem je centar tockakoordinatni pocetak, a osa tocka jednaka z osi i u njemu racunamonove koordinate tacke sa tocka

Vesna Marinkovic Racunarska grafika Geometrijske transformacije 55 / 64

Page 57: Ra cunarska gra ka Geometrijske transformacijepoincare.matf.bg.ac.rs/~vesnap/grafika/05_geometrijske... · 2019. 11. 7. · Smicanje u ravni Transformacija pri kojoj objekat treba

Geometrijske transformacije Promena koordinatnog sistema

Transformacije kao promena koordinatnog sistema

Mi←j – matrica transformacije koja prevodi koordinatni sistem j ukoordinatni sistem i

P(i) – reprezentacija tacke P u koordinatnom sistemu i , P(j) ukoordinatnom sistemu j i P(k) u koordinatnom sistemu k

Vazi:P(i) = Mi←jP

(j) = Mi←jMj←kP(k) = Mi←kP

(k)

iMi←jMj←k = Mi←k

kao iMi←j = M−1j←i

Iz poslednje dve jednakosti sledi vazno svojstvo: za proizvoljnupromenu koordinatnog sistema dovoljno je imati opis svođenja izrazlicitih koordinatnih sistema na jedan koordinatni sistem

Vesna Marinkovic Racunarska grafika Geometrijske transformacije 56 / 64

Page 58: Ra cunarska gra ka Geometrijske transformacijepoincare.matf.bg.ac.rs/~vesnap/grafika/05_geometrijske... · 2019. 11. 7. · Smicanje u ravni Transformacija pri kojoj objekat treba

Geometrijske transformacije Promena koordinatnog sistema

Transformacije kao promena koordinatnog sistema

Data su cetiri koordinatna sistema oznacena brojevima 1, 2, 3 i 4.

Cemu je jednaka matrica M1←2, cemu matrica M2←3, cemu matricaM3←4?

Vesna Marinkovic Racunarska grafika Geometrijske transformacije 57 / 64

Page 59: Ra cunarska gra ka Geometrijske transformacijepoincare.matf.bg.ac.rs/~vesnap/grafika/05_geometrijske... · 2019. 11. 7. · Smicanje u ravni Transformacija pri kojoj objekat treba

Geometrijske transformacije Promena koordinatnog sistema

Transformacije kao promena koordinatnog sistema

M1←2 = T4,2

M2←3 = T2,3 · S0.5,0.5M3←4 = T6.7,1.8 · R45◦

Iz prethodnog vazi: M1←3 = T4,2 · T2,3 · S0.5,0.5Matrice Mi←j imaju isti oblik kao i matrice transformacija

Vesna Marinkovic Racunarska grafika Geometrijske transformacije 58 / 64

Page 60: Ra cunarska gra ka Geometrijske transformacijepoincare.matf.bg.ac.rs/~vesnap/grafika/05_geometrijske... · 2019. 11. 7. · Smicanje u ravni Transformacija pri kojoj objekat treba

Geometrijske transformacije Graf scene

Graf scene

Objekti najcesce imaju hijerarhijsku strukturu

I sama scena (koja se sastoji iz velikog broja objekata) se mozesagledati hijerarhijski

Vesna Marinkovic Racunarska grafika Geometrijske transformacije 59 / 64

Page 61: Ra cunarska gra ka Geometrijske transformacijepoincare.matf.bg.ac.rs/~vesnap/grafika/05_geometrijske... · 2019. 11. 7. · Smicanje u ravni Transformacija pri kojoj objekat treba

Geometrijske transformacije Graf scene

Graf scene

Graf scene je struktura podataka koja se koristi za predstavljanjehijerarhijskog odnosa među transformacijama koje se primenjuju naskup objekata u trodimenzionalnom prostoru

Graf scene se sastoji iz:

cvorova objekata (kocke, valjci, lopte, . . .) koji su podrazumevanojedinicne velicine i pozicionirani u koordinatnom pocetkucvorova atributa (boja, tekstura, . . .)cvorova transformacija

Pogodan je za predstavljanje hijerarhijske strukture objekta na osnovupozicija i atributa njegovih sastavnih delova, ali i za animiranjeslozenog objekta koji se sastoji iz veceg broja delova

Vesna Marinkovic Racunarska grafika Geometrijske transformacije 60 / 64

Page 62: Ra cunarska gra ka Geometrijske transformacijepoincare.matf.bg.ac.rs/~vesnap/grafika/05_geometrijske... · 2019. 11. 7. · Smicanje u ravni Transformacija pri kojoj objekat treba

Geometrijske transformacije Graf scene

Format grafa scene

Transformacije se mogu primeniti:

na listove (glava, osnova, . . .)na grupe objekata (gornji i donji deo tela)

Umesto da za svaki novi objekat koji je potreban pravimo novuprimitivu, mozemo primeniti transformaciju na manji skup primitiva

Vesna Marinkovic Racunarska grafika Geometrijske transformacije 61 / 64

Page 63: Ra cunarska gra ka Geometrijske transformacijepoincare.matf.bg.ac.rs/~vesnap/grafika/05_geometrijske... · 2019. 11. 7. · Smicanje u ravni Transformacija pri kojoj objekat treba

Geometrijske transformacije Graf scene

Primer grafa scene

Najjednostavniji oblik grafa scene je usmereno stablo (grane suusmerene od oca ka sinu)

Kumulativna matrica transformacije M se gradi kako se penjemo uzstablo – transformacije na visem nivou se dodaju na pocetak niza

Primer: za objekat o1 vazi M = M1, za objekat o2 vazi M2 ·M3, zaobjekat o3 vazi M2 ·M4 ·M5

Vesna Marinkovic Racunarska grafika Geometrijske transformacije 62 / 64

Page 64: Ra cunarska gra ka Geometrijske transformacijepoincare.matf.bg.ac.rs/~vesnap/grafika/05_geometrijske... · 2019. 11. 7. · Smicanje u ravni Transformacija pri kojoj objekat treba

Geometrijske transformacije Graf scene

Definisanje grupa u grafu scene

Ako imamo vise slicnih komponenti na sceni, moguce je ponovoiskoristiti vec definisane grupe objekata

Graf scene vise nije stablo, vec DAG (usmereni aciklicki graf)

Transformacije definisane u okviru grupe g3 se ne menjaju, ali surazlicite kumulativne matrice transformacije za svako koriscenje grupeg3 kao celine: T0 · T1 vs T0 · T2 · T4

Vesna Marinkovic Racunarska grafika Geometrijske transformacije 63 / 64

Page 65: Ra cunarska gra ka Geometrijske transformacijepoincare.matf.bg.ac.rs/~vesnap/grafika/05_geometrijske... · 2019. 11. 7. · Smicanje u ravni Transformacija pri kojoj objekat treba

Geometrijske transformacije Graf scene

Renderovanje grafa scene

Renderovanje se sastoji od obilaska grafa scene (DFS)

Geometrijski cvorovi se iscrtavaju, a cvorovi transformacija uticu na matricutransformacije

Ukoliko je graf scene u obliku direktnog aciklickog grafa, obilazi se kao stablo

Primer: T = T0, push(T ), T = T · T1, push(T ), renderuj o1, pop(T ),push(T ), T = T · T5, renderuj o3, pop(T ), T = T · T6, renderuj o4 , . . .

Vesna Marinkovic Racunarska grafika Geometrijske transformacije 64 / 64