1
Koordináta-transzformációk
2.
Koordináta-transzformációk
Geometriai, számítógépi grakai feladatok során gyakran van arra szükség, hogy egy alakzatot egy új koordináta-rendszerben, vagy a jelenlegi koordináta rendszerben, de elmozgatva, kicsinyítve, nagyítva adjuk meg. Ezt koordináta-, illetve pont-transzformációnak nevezzük. Koordináta-transzformációról akkor beszélünk, ha a tárgy egy új koordináta-rendszerre vonatkozó koordinátáit határozzuk meg a régiek ismeretében. Ilyenkor a tárgyat változatlannak tekintjük, csak a néz®pont változik. Pont-transzformációról akkor beszélünk, ha a koordináta-rendszert nem változtatjuk, de az objektum pontjaihoz új koordinátákat rendelünk. Ilyenkor a tárgy változik, a néz®pont változatlan. Matematikailag a kétféle transzformáció azonos formában írható le. A koordináta-rendszereket derékszög¶, jobbsodrású, Descartes-féle koordináta-rendszereknek tekintjük. A transzformációk egységes kezelése érdekében az ún. homogén koordinátákat is bevezetjük. Egy 3-dimenziós térbeli P pont (x, y, z) Descartes-koordinátáit (inhomogén koordináták) kiegészítjük egy negyedik koordinátával, az 1-gyel. Így a P pont homogén koordinátái (x, y, z, 1). Általában az (x1 , x2 , x3 , x4 )-et is a P homogén koordinátájának tekintjük, ha x4 6= 0, valamint x = xx41 , y = xx24 és z = xx34 . Például a (3, −1, 2) inhomogén koordinátákkal adott pont homogén koordinátái a (3, −1, 2, 1) és a (6, −2, 4, 2) is. Egy (x1 , x2 , x3 , 0) koordinátájú pontot végtelen távoli (ideális) pontnak nevezzük. A transzformációk során a pont (x, y, z), illetve a (x, y, z, 1) koordinátáinak ismeretében az új (x0 , y 0 , z 0 ), illetve a (x0 , y 0 , z 0 , 1) koordinátákat keressük. 2.1.
Síkbeli (2D) transzformációk
2.1.1. Egybevágósági transzformációk
Eltolás. (Pont-transzformáció.) Legyen az eltolás vektora d = (d , d ) (1. ábra). Ekkor x
y
az (x, y) koordinátájú pont új (x0 , y 0 ) koordinátáit a következ®képpen határozhatjuk meg: x0 = x + d x y 0 = y + dy .
Mátrixos formában inhomogén alakban:
x0 y0
=
1 0 0 1
x y
+
dx dy
Homogén alakban mátrixos formában: x0 1 0 dx x y 0 = 0 1 dy y . 1 0 0 1 1
.
2
Számítógépi geometria
Röviden
ahol
M
x0 =
Mx,
0 1 0 dx x x 0 0 1 dy , x = y = és x = y 0 . 1 0 0 1 1
P’
y d P j x
i
1. ábra. Eltolás (Koordináta-rendszer transzformáció.) Ha az eredeti i és j vektorokkal megadott koordináta rendszert eltoljuk −d vektorral, a P pontot nem változtatjuk, akkor az új koordináta rendszerben a P koordinátái megegyeznek az el®z®ekkel (2. ábra). Láthatjuk, hogy a két eset hasonlóan írható le. Kés®bb is csak a pont-transzformációkat tárgyaljuk. y P
y’ j d j’
x
i x’
i’
2. ábra. Eltolás
Forgatás. Az origó körüli α szöggel való pozitív elforgatás a következ®képpen adható meg (3. ábra):
x0 = x cos α − y sin α y 0 = x sin α + y cos α .
Homogén alakban mátrixos formában: x0 cos α − sin α 0 x y 0 = sin α cos α 0 y . 1 0 0 1 1
Homogén alakban, mátrixokkal felírva: x0 =
Mx,
3
Koordináta-transzformációk
P’
y
P a
j
x
i
3. ábra. Origó körüli forgatás ahol
M
0 cos α − sin α 0 x x 0 = sin α cos α 0 , x = y és x = y 0 . 1 0 0 1 1
A síkbeli transzformáció általános homogén alakjának mátrixos formája a következ®:
M
ahol
m11 m12 21 m22 0 0
M= m
(1)
x0 = x, 0 d1 x x d2 , x = y és x0 = y 0 . 1 1 1
Tükrözés. A továbbiakban csak a transzformáció Mmátrixát írjuk fel. 1 0 0 Az x tengelyre vonatkozó tükrözés mátrixa: M = 0 −1 0 . 0
0
1
−1 0 0 Az y tengelyre vonatkozó tükrözés mátrixa: = 0 1 0 . 0 0 1 −1 0 0 Az origóra vonatkozó tükrözés mátrixa: = 0 −1 0 . 0 0 1 0 1 0 Az y = x egyenesre vonatkozó tükrözés mátrixa: = 1 0 0 . 0 0 1
M
M
M
y
y P’
P j
P j
x
i
i
P’
4. ábra. Tengelyekre vonatkozó tükrözés
x
4
Számítógépi geometria
2.1.2. An transzformációk Skálázás vagy nyújtás. Origóból történ® tengelyek menti nyújtás. Az s
x
> 0 az x tengely
irányú nyújtás arányszáma, az sy > 0 az y tengely irányúé (5. ábra). Ha mindkét tengely irányában megegyezik a nyújtás mértéke, azaz 0 < s = sx = sy , akkor a transzformációt origó középpontú nak (1 < s), vagy nek (0 < s < 1) nevezzük, amely
nagyítás kicsinyítés s 0 0 0 s 0 . már hasonlósági transzformáció. M = x
y
0
0
y sy
1
P’
P j sx
i
x
5. ábra. Nyújtás, skálázás
Nyírás. Ha a sík pontjait egy x egyenessel párhuzamosan elcsúsztatjuk úgy, hogy a
csúsztatás mértéke egyenesen arányos a x egyenest®l való el®jeles távolsággal, akkor az így kapott transzformációt nevezzük nyírásnak. (Egy speciális tengelyes anitás, ún. eláció.) Ha a x egyenes az xtengely és a nyírás mértéke λ (6. ábra), akkor a transzformáció mátrixa:
M
1 λ 0 0 1 0 . = 0 0 1 y
l
y
P
P’ 1
j
j i
x
x
i
6. ábra. Nyírás x tengellyel párhuzamosan Az y tengellyel párhuzamos µ mérték¶ nyírás mátrixa:
M
1 0 0 = µ 1 0 . 0 0 1
A fenti elemi transzformációk egymás utáni végrehajtásával összetett transzformációkat állíthatunk el®. Egy tetsz®leges mozgás eltolásból és forgatásból; egybevágósági transzformáció eltolásból, forgatásból és tükrözésb®l; egy általános hasonlósági transzformáció egy egybevágósági transzformációból és egy origó körüli nagyításból (kicsinyítésb®l); egy általános an transzformáció pedig egy egybevágósági transzformációból és skálázásból,
5
Koordináta-transzformációk
illetve nyírásból állítható el®. A fenti transzformációkhoz tartozó mátrix determinánsa nem nulla, egybevágóság esetén ±1 mozgás esetén pedig +1.
2.1. Példa. Az elemi transzformációk egymás után alkalmazásával állítsunk el® egy összetett transzformációt. El®ször alkalmazzunk rást, majd az origó körüli,
α = 30◦ -os
x-tengellyel
párhuzamos,
vektorral való eltolást. Ekkor az egyes transzformációk mátrixa
M
=
2
√ 3 2 1 2
0
1 − 0 √2 3 0 2 0 1
és
Így adódik, hogy
x0 =
M
mérték¶ nyí-
1 d( 23 , ) 2 1 2 0 0 1 0 , = 0 0 1
M
1
1 0 32 = 0 1 12 . 0 0 1
3
M (M (M x)) = (M M M )x = Mx, M MMM 3
2
1
ahol az összetett transzformáció
3
2
1
mátrixát a három transzformáció mátrixának a (for-
dított sorrendbeli) szorzata, az
3
3
1 adja. Azaz
2
M=M M M 2
√
3 2 1 2
1
=
0
√ 3 − 21 32 √ 3 + 1 12 . 2 0 1
Határozzuk meg a homogén
λ=2
szöggel való pozitív elforgatást és végül egy
(2, −1) pont összetett transzformáció utáni koordinátája (2, −1, 1), tehát √3 √ 1 3 2√ 2 3 − 2 2 2 √ 3 1 + 1 21 −1 = 1−2 3 . 2 2 1 1 0 0 1
koordinátáját. A pont
√
Tehát a pont új inhomogén koordinátája
1.
(2, 1−2 3 ).
2.
3.
l y
y
y
j
j
j
i
x
i
x
y
i
d
j
a x
i
x
7. ábra. Összetett transzformáció
2.2. Feladat. 2.2.1. Írja fel a C(2, 1) pont körüli 45◦ -os forgatás mátrixát! (A C eltolása, origó körüli forgatás, C visszatolása.)
pont origóba való
6
Számítógépi geometria
2.2.2. Bontsa fel az y = x egyenesre vonatkozó tükrözést origó körüli forgatások és xtengelyre való tükrözés szorzatára! 2.2.3. Bontsa fel az origóra való tükrözést tengelyes tükrözések szorzatára! 2.2.
Térbeli (3D) transzformációk
A 3-dimenziós térben egy általános an transzformáció homogén alakjának mátrixos formája a következ®: m11 m12 m13 m14 x0 y 0 m21 m22 m23 m24 0 = z m31 m32 m33 m34 1 0 0 0 1
Röviden x0 =
M
x y . z 1
Mx,
m11 m12 m13 m14 m21 m22 m23 m24 ,x= = m31 m32 m33 m34 0 0 0 1
ahol
A továbbiakban az elemi transzformációk
(2) 0 x x 0 y 0 y0 x = és z z 1 1
.
M mátrixait adjuk meg.
2.2.1. Egybevágósági transzformációk
Eltolás. A d = (d , d , d ) vektorral való eltolás. M x
y
z
1 0 = 0 0
Forgatás. A koordináta-tengelyek körül.
M
Az y tengely körüli α szöggel való pozitív elforgatás.
M
M
0 dx 0 dy . 1 dz 0 1
1 0 0 0 cos α − sin α = 0 sin α cos α 0 0 0 cos α 0 sin α 0 1 0 = − sin α 0 cos α 0 0 0 cos α − sin α 0 sin α cos α 0 = 0 0 1 0 0 0
Az x tengely körüli α szöggel való pozitív elforgatás.
A z tengely körüli α szöggel való pozitív elforgatás.
0 1 0 0
0 0 . 0 1 0 0 . 0 1 0 0 . 0 1
7
Koordináta-transzformációk
Tükrözés. A koordináta síkokra.
Az xy koordinátasíkra való tükrözés.
M
Az xz koordinátasíkra való tükrözés.
M
Az yz koordinátasíkra való tükrözés.
M
1 0 0 0 1 0 = 0 0 −1 0 0 0 1 0 0 0 −1 0 = 0 0 1 0 0 0 −1 0 0 0 1 0 = 0 0 1 0 0 0
0 0 . 0 1 0 0 . 0 1 0 0 . 0 1
2.2.2. An transzformációk Skálázás. Origóból történ® tengelyek menti nyújtás. Az egyes tengelyek menti nyújtás pozitív arányszáma sx , sy , illetve sz . Ha 0 < sx = sy = sz , akkor atranszformáció origó középpontú
hasonlóság, amely hasonlósági transzformáció. M
sx 0 0 0 sy 0 = 0 0 sz 0 0 0
0 0 . 0 1
Nyírás.
Az xy síkkal párhuzamosλ mérték¶ x tengely irányú és µ mérték¶ y tengely irányú
nyírás.
M
1 0 0 1 = 0 0 0 0
λ µ 1 0
0 0 . 0 1
A többi koordinátasíkkal párhuzamos nyírás mátrixa hasonlóan megadható.
3.
Vetítések
A 3-dimenziós tér alakzatait általában csak síkban tudjuk megjeleníteni. Lehet ez a sík a nyomtató, plotter rajzlapja, vagy akár a képerny®. Ehhez szükség van a tér pontjainak egy képsíkra való egyértelm¶ vetítésére. Az ilyen vetítések dimenzió veszt®, nem kölcsönösen egyértelm¶, elfajuló leképezések. A vetítésekhez tartozó (2) transzformáció mátrixának determinánsa nulla. Ilyen leképezések a mer®leges vetítés, párhuzamos vetítés, a centrális vetítés. Az egyszer¶ség miatt a képsíknak az xy koordináta síkot tekintjük. Az el®z®ekhez hasonlóan a vetítéseket is a +(2) homogén alakban írjuk le.
8
Számítógépi geometria
3.1.
Mer®leges vetítés
Az xy síkra való mer®leges vetítés esetén az alakzatnak csak a z koordinátái lesznek 0-k (8. ábra). Tehát a P (x,y, z, 1) pont vetülete a P 0 (x, y, 0, 1) pont lesz, a mer®leges vetítés mátrixa pedig
M
1 0 0 1 = 0 0 0 0
0 0 0 0
0 0 . 0 1
z P(x,y,z) y
O x
P’(x,y,0)
K 8. ábra. Mer®leges vetítés
3.2.
Centrális vetítés
Legyen a centrális képsík az xy koordinátasík és a vetítés centruma a z tengely C(0, 0, s) pontja, ahol 0 < s. Továbbá legyen a P (x, y, z) pont (z 6= s) centrális vetülete a P c (xc , y c , 0) pont. Ha a P , P 0 és P c pontokat vetítjük az yz síkra, akkor a 9. ábra y yc arányt. Ebb®l y c -t kialapján a kapott hasonló háromszögekb®l felírhatjuk az s = s−z s c c fejezve kapjuk, hogy a P második koordinátája y = s−z y . Hasonlóanmegkaphatjuk a s s centrális vetület els® koordinátáját. Tehát P c koordinátái s−z x, s−z y, 0 , ahol s 6= z .
x 0 0 0 x 1 0 0 y = y , láthatjuk, hogy 0 0 0 z 0 1 − zs 0 − 1s 1 1 s s Azaz (x, y, 0, 1 − zs ) = s−z x, s−z y, 0, 1 . Tehát a cent 0 0 0 0 . 0 0 − 1s 1
1 0 Ha gyelembe vesszük, hogy 0 0 P c homogén koordinátáit kaptuk. 1 0 0 1 rális vetítés mátrixa = 0 0 0 0
M
9
Koordináta-transzformációk
z C(0,0,s) P’’ s
y P’ P
K
}
y
P’’ z
O
}
x
}
s-z
P O
C
yc
c
9. ábra. Centrális vetítés 3.3.
Párhuzamos vetítés
Az xy koordinátasíkra történ® v(vx , vy , vz ) (vz 6= 0) vektorralpárhuzamos vetítés mátrixa az el®z®ekhez hasonlóan meghatározható (10. ábra)
M
1 0 = 0 0
0 − vvxz 1 − vvyz 0 0 0 0
0 0 . 0 1
v
z P y
O x
y
P’’ vz vy z
P’
O
K
}
P
y-y
10. ábra. Párhuzamos vetítés Ha a párhuzamos vetületre alkalmazunk egy síkbeli hasonlósági transzformációt, akkor az így kapott kép egy axonometrikus vetület lesz. A CAD alkalmazások általában a párhuzamos vetítést nem alkalmazzák. A térbeli pont-transzformációkkal vagy koordináta-rendszer transzformációkkal a vetítend® alakzatot olyan helyzetbe hozzák, ahonnét a mer®leges vetítés megfelel® vetületet eredményez. Ez lehet akár felülnézet vagy egy ortogonális axonometrikus kép. Sok szoftver a centrális vetítést egy térbeli (projektív) transzformációval és egy mer®leges vetítéssel helyettesíti. El®ször olyan alakká transzformálja az objektumot, hogy annak a mer®leges vetülete egy centrális képet adjon.
3.1. Feladat. 3.1.1. Írja fel az origóra való tükrözést mátrixát!
10
Számítógépi geometria
3.1.2. Adja meg a P (2, 3, −1) térbeli pont képének koordinátáit egy x tengely menti 5 egységgel való eltolás, egy origóból való 2-szeresére nagyítás, z -tengely körüli −60◦ os forgatás és egy xy síkra való tükrözés után! (A megoldás menetét, alapmátrixokat is közölje.) Egy tetsz®leges alakzattal végezze el ugyanezt ACAD-dal is! Ábrázolja az eredeti és a további transzformált alakzatokat is! Mindegyiket jelölje más színnel! 3.4.
CAD rendszerek koordináta-rendszerei
A CAD rendszerek több koordináta-rendszert használnak egyszerre. A modelltérben van egy általános un. világ koordináta-rendszer. A modelltérben minden létrehozott objektumnak van egy lokális koordináta-rendszere. Az egyes objektumok adatai a lokális koordináta rendszerében vannak tárolva. A modelltérre, vagy annak egy részletére ha ránézünk egy síkbeli (mer®leges vagy perspektív) vetületet látunk. Ez a síkbeli vetület egy un. ablakban van, amely a vetítéshez tartozó koordináta rendszer egy síkja (a 11. ábra). Több vetületet, elrendezést is megjeleníthetünk a monitoron, a rajzlapon, akkor ezeket a rendszer a megjelenít® eszköz egy újabb már síkbeli koordináta-rendszerébe helyezi el. A CAD rendszerek képesek az újabb koordináta-rendszereket dinamikusan illeszteni az egyes objektumok lapjaihoz is, az aktuális feladatoknak megfelel®en. A modellez®, felhasználónak természetesen lehet®sége van a számára megfelel® újabb koordináta-rendszereket deniálására is. (Egy objektum esetén megegyezhet a világ, a lokális és vetítési koordináta rendszer is.) Láthatjuk, hogy a fenti koordináta-transzformációknak milyen nagy szerepe van a számítógépes ábrázolásban. Fontos, hogy a rendszer egyszer¶en, gyorsan kiszámolja az alakzatok megfelel® koordinátáit. A transzformációk mátrixos megadása erre tökéletesen megfelel®.
11. ábra. CAD rendszerek koordináta rendszerei Az alakzatok m¶szaki ábrázolásakor általában több vetületet, nézetet is készítünk. Az európai vetítési rendszer esetén az alakzat köré egy kockát képzelünk és erre a kockára
Koordináta-transzformációk
11
vetítjük mer®legesen az alakzatot. A 12. ábrának mindig a f® vetületnek az elölnézetet tekintjük, majd a felülnézetet és oldalnézeteket. A kapott vetületeket egy síkba forgatva ábrázoljuk (13. ábra). Középen az elölnézetet, alatta a balnézetet, jobbra a balnézetet és balra a jobbnézetet. A f® nézetek közül néhányat elhagyhatunk (kivéve az elölnézet), vagy újakkal kiegészíthetjük, mint például a hátulnézet, az alulnézet, vagy valamely ferde nézet.
12. ábra. Europai vetítési rendszer (térbeli)
13. ábra. Europai vetítési rendszer
3.5.
Láthatósági algoritmusok ???