Računarstvo i informatika Računarska grafika Geometrijske transformacije Prof. Dr Slobodanka Đorđević - Kajan Katedra za računarstvo Elektronski fakultet Niš 1
Ciljevi Upoznati osnovne 2D geometrijske transformacije Upoznati osnovne 3D geometrijske transformacije Upoznati kompoziciju geometrijskih transformacija Upoznati homogene koordinate 2
Teme Translacija Rotacija Skaliranje (promena veličine) Refleksija Smicanje Homogene koordinate Inverzne transformacije 3D koordinatni sistemi Transformacije u 3D 3
Geometrijske transformacije - 1 Geometrijska transformacija je funkcija koja preslikava originalnu tačku ili vektor u njenu sliku Piše se u obliku Q = T(P) za tačke v = R(u) za vektore U računarskoj grafici se koriste dvodimenzionalne (2D) i trodimenzionalne (3D) geometrijske transformacije U slučaju afine transfomacija, ako su koordinate originalne tačke (x,y), koordinate ove tačke nakon transformacije su (x,y ): Treća jednačina se koristi kod homogenih koordinata 4
Geometrijske transformacije - 2 Objekat se posmatra kao skup tačaka: Obj = {P(x,y)} u 2D koordinatnom sistemu Obj = {P(x,y,z)} u 3D koordinatnom sistemu Pomoću geometrijskih transformacija od objekta Obj = {P(x,y)} se dobija objekat Obj = {P'(x,y)} Tačka P (x,y) se dobija geometrijskom transformacijom tačke P(x,y) P (x,y) = T(P(x,y)) 5
Geometrjske transformacije - 3 Postoje dve konvencije za geometrijske transformacije kretanja (translacija i rotacija) Kovencija pokretnog koordinatnog sistema pokretne virtuelne kamere, odnosno posmatrača Konvencija pokretnog objekta Ove dve konvencije se mogu kombinovati Mogu se kretati i objekat i posmatrač Mi ćemo nadalje koristiti konvenciju pokretnog objekta 6
Elementarne CG GIS L@b geometrijske transformacije Translacija Skaliranje Rotacija Refleksija Smicanje Kompozicijom (konkatenacijom) elementarnih geometrijskih transformacija može se izvesti bilo koja geometrijska transformacija objekta 7
2D koordinatni sistemi CG GIS L@b Desno orijentisani Dekartov koordinatni sistem y x y x Levo orijentisani Dekartov koordinatni sistem U 2D ravni koristi se 2D Dekartov koordinatni sistem koji može biti desno ili levo orijentisan Desno ako se rotacijom oko koordinatnog početka pozitivne x-ose u smeru suprotom od smera kretanja kazaljke na satu za 90 0 ona poklopi sa pozitivnom y-osom Levo ako se rotacijom oko koordinatnog početka pozitivne x-ose u smeru kretanja kazaljke na satu za 90 0 ona poklopi sa pozitivnom y-osom Nadalje ćemo koristiti desno orijentisani koordinatni sistem 8
Matrična reprezentacija transformacija Transformacije se mogu predstaviti na dva načina: Tačka P(x,y) je predstavljena vektorom vrste P = P. M gde je: P original tačke, P slika, M - matrica transformacije Tačka P(x,y) je predstavljena vektorom kolone: P T = M T P T P = M. P Nadalje ćemo koristiti prvi način matričnog predstavljanja 9
Translacija Tačka P(x,y) se translira u tačku P'(x',y') za Dx po x-osi i Dy po y-osi Tačka P se pomera paralelno x-osi za Dx jedinica i paralelno y-osi za Dy jedinica y' y x x' P = P+T Original Slika Vektor translacije 10
Skaliranje Tačka P se skalira duž x-ose za Sx i duž y-ose za Sy oko koordinatnog početka Objekat se skalira tako što se skaliraju sve njegove tačke Dovoljno je skalirati temena i povući linije između skaliranih temena P P' Matrica skaliranja uniformno skaliranje Sx=Sy diferencijalno skaliranje Sx Sy uvećanje S>1 smanjenje S<1 11
Rotacija - 1 Tačka (x,y) se rotira za ugao θ oko koordinatnog početka ρ ρ Smer rotacije 12
Rotacija - 2 Matrica rotacije 13
Refleksija X =X*S X Y =Y*S Y 14
y Smicanje - 1 y y 1 1-1 -1 1 x 1 x 1 1 x Jedinični kvadrat u koordinatnom početku Smicanje jediničnog kvadrata po x-osi Smicanje jediničnog kvadrata po y-osi Smicanje sinonim: iskošenje engl. shear 15
Smicanje - 2 Smicanje po x-osi (x koordinata je funkcija y koordinate) Smicanje po y-osi (y koordinata je funkcija x koordinate) 16
Smicanje - 3 Smicanje po x-osi SHx = 1 0 Hx 1 SHx - Matrica smicanja u pravcu x-ose Hx faktor smicanja po x-osi Smicanje po y-osi SHy = 1 Hy 0 1 SHy - Matrica smicanja u pravcu y-ose Hy faktor smicanja po y-osi P = P * SHx P = P * SHy x' y' = x y * SHx = x+y*hx y * Hx konstanta proporcionalnosti x' y' = x y SHy = x y+x*hy * Hy konstanta proporcionalnosti 17
Smicanje - 4 Matrica smicanja gde su: H x i H y faktori smicanja po x i y-osi respektivno 18
Homogene koordinate - 1 Neuniformnost transformacija T koristi sabiranje (R, S, H) koriste množenje Homogene koordinate Tačka u 2D se predstavlja sa 3 koordinate (x,y,w) U računarskoj grafici w=1, pa su homogene koordinate tačke u 2D prostoru (x,y,1) 19
Homogene koordinate - 2 Predstava tačke u vektorskom obliku [x y] se proširuje trećom koordinatom [x y 1] Koordinatni sistem za ovakvo predstavljanje tačke se naziva sistemom sa homogenim koordinatama Pomoću homogenih koordinata dobija se uniformni matematički aparat za sve transformacije Svaka transformacija se predstavlja adekvatnom matricom transformacije Treća kolona matrice M je konstantna za sve transformacije 20
Translacija CG GIS L@b preko homogenih koordinata Homogena matrica translacije 21
Translacija Primer 1 Linijski segment AB zadat je krajnjim tačkama A(4,5) i B(7,5). Translirati ga za (6,-2) y A = 4 5 1 * 1 0 0 0 1 0 6-2 1 = 10 3 1 5 3 A 4 7 B A B 10 13 x B = 7 5 1 * 1 0 0 0 1 0 6-2 1 = 13 3 1 22
Translacija preko homogenih koordinata Konvencija pokretnog koordinatnog sistema CG GIS L@b 23
Translacija Primer 2 24
Skaliranje CG GIS L@b preko homogenih koordinata Homogena matrica skaliranja 25
Skaliranje - Primer y y x x 26
Rotacija CG GIS L@b preko homogenih koordinata Homogena matrica rotacije 27
Rotacija preko homogenih koordinata CG GIS L@b Konvencija pokretnog koordinatnog sistema 28
Rotacija - Primer 29
Smicanje CG GIS L@b preko homogenih koordinata Homogena matrica smicanja 30
Smicanje - Primer 31
Inverzne transformacije 32
Kompozitne transformacije - 1 Q je slika tačke P definisana sa Q=t3(t2(t1(P))) gde su t1,t2 i t3 elementarne transformacije Kako je množenje matrica asocijativno, to je: Q = (((P*T1)*T2)*T3) = P*(T1*T2*T3) = P*T T je kompozitna matrica složene transformacije T1, T2 i T3 su matrice elementarnih transformacija koje učestvuju u složenoj transformaciji Redosled operacija je veoma važan Množenje matrica nije komutativna operacija 33
Kompozitne transformacije - 2 Početno stane Kompozitna matrica transformacije 34
Rotacija oko proizvoljne tačke 1. 2. 3. 4. 35
3D transformacije 36
3D koordinatni sistemi ekran ekran 37
3D geometrijske transformacije 38
3D translacija 3D matrica translacije 39
3D skaliranje [X Y Z 1] = [X Y Z Z 1] z 3D matrica skaliranja 40
3D rotacija 41
3D rotacija - - - 42
3D smicanje 43
Primena 2D transformacija Jedna primena je za transfomaciju slike Iz koordinatnog sistema realnog sveta u normalizovane koordinate uređaja Koordinate realnog sveta (Real Word Coordinates, RWC) Obično u jedinicama dužine (santimetar, inč) Sinonimi: prirodne koordinate, svetske koodrdnate Normalizovane koordinate uređaja (Normalized Device Coordinates, NDC) Obično od 0.0 do 1.0 Koordinate uređaja (Device Coordinates, DC) Obično u jedinicama dužine ili pikselima Prozor (Window) Zaslon ili prikazni prozor (Viewport) 44
Generisanje prikaza (displeja) 45
Primer 46
Transformacije koordinatnih sistema CG GIS L@b 47
koordinatnih sistema Transformacije koordinatnih 48
Kviz RG4 Kviz 1. Koje vrste geometrijskih transformacija postoje? 2. Zašto se uvode homogene koordinate? 3. Napisati jednačinu za skaliranje 2D objekta 3 puta po x osi i 2 puta po y osi 4. Napisati jednačinu za skaliranje 3D objekta, 3 puta po x osi i 2 puta po y osi, 4 puta po z osi 5. Napisati jednačinu za rotiranje oko tačke (2,3) Trajanje kviza: 5 minuta Vrednuje se: 0.5 poena/pitanje Samostalni rad Corel Draw geometrijske transformacije 49