Upload
goran-zdravkov
View
29
Download
0
Embed Size (px)
Citation preview
1Raunarskagrafika
predavanjadoc.dr. Samir [email protected]
15. Geometrijske transformacije
Homogene koordinate 3D Primitivi Bulove operacije 2D-3D operacije 3D translacija 3D rotacija 3D skaliranje
Homogene koordinate
Prikazu take sa tri koordinate (x,y,z) se dodaje homogena koordinata (x,y,z,h)
Homogenizacija koordinata je transformacija take (x y z h) utransformacija take (x,y,z,h) u (x/h,y/h,z/h,1)
Bar jedna homogena koordinata mora biti razliita od nule; (0,0,0,0) nije dozvoljena
h=0 daje take "u beskonanosti"
3D Primitivi
U 3D vektorskoj grafici, slika se sastoji od primitiva: osnovnih geometrijskih tijela koja kombinovanjem daju sloenije oblike.
Za kombinovanje se koriste operacije Za kombinovanje se koriste operacije Bulove algebre.
3D Primitivi
3D taka:
3D pravac:
1 2 3 4( , , ) ( ', ', ', ) ( , , , )V x y z X x y z h ili X x x x x
1 2 3
4 4 4
x x xx y zx x x
3D pravac:
implicitni oblik:
u homogenim koordinatama:
homogena jednaina:
31 2
4 4 4
0xx xa b c dx x x
1 2 3 4 0a x b x c x d x
0a x b y c z d
3D Primitivi
U matrinom obliku: 3D taka:
1 Txy
x y z
3D pravac:
11
x y zz
1 1 0ab
a x b y c z d x y zcd
23D primitivi Kvadar (kocka)
Elipsoid (sfera)
Konus
Cilindar
Torus
Bulove operacije
Kombinovanjem 3D primitiva dobiju se sloeniji oblici
Koriste se 3 operacije: unija presjek i razlikaunija, presjek i razlika
Bulove operacije
Zadatak: a) Koji primitivi su potrebni da bi se napravio oblik kao na desnoj slici?b) Koliko je potrebno operacija razlike?b) Koliko je potrebno operacija razlike?
Bulove operacije
Bulove operacije se mogu vriti i na 2D konturama i na 3D objektima.
2D konture se mogu nakon toga koristiti kao osnova za formiranje 3D geometrijekao osnova za formiranje 3D geometrije.
2D-3D operacije
Neke geometrijske oblike nije mogue dobiti kombinovanjem 3D primitiva.
Tada se koriste 2D-3D operacije koje od 2D kontura generiu prostorne oblike2D kontura generiu prostorne oblike.
2D-3D operacije
Extrude Translacijom 2D konture
dobija se prizmatini oblikT l ij d d ti ili Translacijom se moe dodavati ili oduzimati materijal
32D-3D operacije
Revolve Rotacija 2D konture oko ose
2D-3D operacije
Loft Transformacija jedne u drugu 2D konturu;
trag koji se pri tome ostavlja predstavljaostavlja predstavlja 3D tijelo
2D-3D operacije
Sweep 2D kontura se kree
po krivoj liniji, tako da jedna takada jedna taka konture prati krivulju, a ravan konture je uvijek okomita na krivulju.
3D translacija
1 0 00 1 0
( , , )0 0 10 0 0 1
x
yx y z
z
dd
T d d dd
( , , ) 1 1 TTx y z x y zT d d d x y z x d y d z d
3D rotacija
cos sin 0 0i 0 0 1 0 0 00 i 0
Matrice kojim se mnoi matrica koordinata take za rotaciju oko ose x, y ili z:
sin cos 0 0( )
0 0 1 00 0 0 1
zR
0 cos sin 0( )
0 sin cos 00 0 0 1
xR
cos 0 sin 00 1 0 0
( )sin 0 cos 00 0 0 1
yR
3D skaliranje0 0 0
0 0 0( , , )
0 0 00 0 0 1
x
yx y z
z
ss
S s s ss
( , , ) 1 1 TTx y z x y zS s s s x y z s x s y s z