Hajder L. és Valasek G. hajder.levente@sztaki.mta.hu Eötvös Loránd Tudományegyetem Informatikai Kar 2014/2015. tavaszi félév
Tartalom Geometria modellezés 1 Geometria modellezés 2
Geometria modellezés feladata Geometriai alakzatok egzakt leírása Pontok Testek stb. Kérdések Hogyan adjuk meg ezeket a halmazokat? Hogyan lehet őket kirajzolni?
Esettanulmány: egyenes leírása Egyenes megadható többféleképpen, például: y [ = ] ax [ + ] b [ ] x 0 1 = + λ y b a Tanulság: Feladattól és Dimenziótol is függhet a módszer kiválasztása
Tartalom Geometria modellezés 1 Geometria modellezés 2
, felületek leírása Az görbéket, felületeket (amik közé az egyenes és a sík is tartozik) egy-egy ponthalmaznak tekintjük. Hogyan adjuk meg ezeket a halmazokat? explicit: y = f (x) mi van ha vissza akarjuk fordítani? implicit: f (x, y) = 0 parametrikus: p(t) = [ x(t) y(t) ], t R
Példa # 1: függőleges tengelyű parabola 2D-ben A függőleges tengelyű (tehát nem általános) parabola leírása: explicit: y = ax 2 + bx + c implicit: ax 2 y + bx + c = 0 parametrikus: p(t) = [ x(t) y(t) ] [ = t at 2 + bt + c ], t R
Példa # 2: általános helyzetű (térbeli) gömb Gömb paraméterei: középpont ( [ x 0 y 0 ] T z 0 ) és sugár (r). Leírási módok: implicit: (x x 0 ) 2 + (y y 0 ) 2 + (z z 0 ) 2 r 2 = 0 explicit: z = ± r 2 (x x 0 ) 2 (y y 0 ) 2 + z 0 Parametrikus: p(t) = x(t) y(t) y(t) = r sin(u) cos(v) r sin(u) sin(v) r cos(u) v [ π, π), u [0, π]
Tartalom Geometria modellezés 1 Geometria modellezés 2
Speciális parabola Geometria modellezés Az y tengelyű, (0, p) fókuszpontú parabola Implicit egyenlete: x 2 4py = 0 Explicit egyenlete: y = x 2 4p Parametrikus egyenlete: p(t) = [t, t 2 4p ]T, t R
Kevésbé speciális parabola Mi van, ha a c = [ c x a parabolát? c y ] ponttal akarjuk eltolni az origóból Az implicit és explicit alakban be kell vinni a (c x, c y ) koordinátákat (pl. implicitből (x c x ) 2 4p(y c y ) = 0 lesz) Parametrikus alakban egyszerűen p(t) + c lesz az új alak.
Általános helyzetű parabola Implicit egyenlet: Ax 2 + Bxy + Cy 2 + Dx + Ey + F = 0, feltéve, hogy B 2 = 4AC. Túl bonyolult, ritkán alkalmazzák Explicit: Még bonyolultabb, teljes négyzetté alakítással Parametrikus: függőleges tengelyű parabola elforgatással p(t) = [ ] cos(φ)t sin(φ) t2 4p + c x, cos(φ) t2 4p + sin(φ)t + c y c x, c y, t R, φ [ π, π)
Kör Geometria modellezés A c R 2 középpontú, r sugarú kör egy Implicit egyenlete: (x c x ) 2 + (y c y ) 2 r 2 = 0 Explicit alakban nem tudjuk az egész kört leírni egy függvénnyel (DE két darabban menne, pl. c = 0, r = 1 mellett y = ± 1 x 2, ahol x [ 1, 1]) Parametrikus egyenlete: p(t) = r[cos t, sin t] T + c, ahol t [0, 2π)
Ellipszis Geometria modellezés A c R 2 középpontú, nagytengelyével az x tengellyel párhuzamos, 2a nagytengelyű és 2b kistengelyű ellipszis egy (x cx )2 (y cy )2 Implicit egyenlete: + 1 = 0 a 2 b 2 Explicit alakban: lásd előbb Parametrikus egyenlete: p(t) = [a cos t, b sin t] T + c, ahol t [0, 2π)
Ellipszis Geometria modellezés De mi van, ha nem akarjuk, hogy x, y tengellyel párhuzamosak legyenek a tengelyeink? Implicit egyenlet: Ax 2 + Bxy + Cy 2 + Dx + Ey + F = 0, feltéve, hogy B 2 < 4AC. Elég bonyolult... Parametrikus egyenlete: speciális ellipszisből báziscsere segítségével kapjuk: ha az új tengelyek k, l, akkor p(t) = a cos tk + b sin tl + c, ahol t [0, 2π) k és l tengelyek egy szög (elforgatás) segítségével kifejezhetőek.
Szakasz Geometria modellezés Legyen adott két pont, a, b E 3. A két ponton átmenő egyenes parametrikus egyenlete: ahol t R. p(t) = (1 t)a + tb, Ha t [0, 1], akkor az a, b pontokat összekötő egyenes szakaszt kapjuk.
Egyenes Geometria modellezés Paraméteres egyenlet: p 0 + λd Explicit egyenlete: y = a x + b Implicit egyenlete: ax + by + c = 0 Skálázásra érzéketlen: νax + νby + νc = 0 Implicit egyenlet vektoros alakban is írható: A T X = 0 ahol A = [ a b c ] T X = [ x y 1 ] T A és X skálázásra érzéketlen. X felfogható homogén koordinátaként. Valós koordinátára áttérés esetén a harmadik koordinátával osztani kell!
Két egyenes metszéspontja Implicit egyenletekkel: Első egyenes: A T 1 X = 0 Második egyenes: A T 2 X = 0 Metszéspont: két egyenlet együttes megoldása BX = 0, ahol [ ] A T B = 1 A T 2 B mérete: 2 3, B nulltere (pontosabban: nullvektora) adja a megoldást A nullvektor homogén koordinátákban adja az eredményt!
Két egyenes metszéspontja Paraméteres egyenletekkel: Első egyenes: p (1) 0 + λ (1) d (1) Második egyenes: p (2) 0 + λ (2) d (2) Metszéspont: a két egyenlet közös megoldása: p (1) 0 + λ (1) d (1) = p (2) 0 + λ (2) d (2) Mivel 2D-ben vagyunk, ez valójában 2 egyenlet. Metszéspont a megfelelő lineáris egyenlet megoldásából jön: [ ] λ (1) λ (2) = [ d (1) d (2)] ( ) 1 p (2) 0 p (1) 0
Spline-ok Geometria modellezés Olyan fontos görbeleíró elem, hogy külön előadás lesz róla.
parametrikus alakja Deriváltak: p (i) (t) = [x (i) (t), y (i) (t)] T, t [...], i = 0, 1, 2,... Ha a görbét egy mozgó pont pályájának tekintjük, akkor az első derivált a sebességnek tekinthető, a második a gyorsulásnak stb. Valódi sebesség, gyorsulás esetén t R az időt jelöli.
Tartalom Geometria modellezés 1 Geometria modellezés 2
Megadás Geometria modellezés Explicit: z = f (x, y) Implicit: f (x, y, z) = 0 Parametrikus: p(u, v) = [x(u, v), y(u, v), z(u, v)] T, (u, v) [a, b] [c, d]
Sík Geometria modellezés Paraméteres megadás: p 0 + λ 1 d 1 + λ 2 d 2 Implicit egyenlete: ax + by + cz + d = 0 Skálázásra érzéketlen: νax + νby + νcz + νd = 0 Implicit egyenlet vektoros alakban is írható: A T X = 0 ahol A = [ a b c d ] T X = [ x y z 1 ] T A és X skálázásra érzéketlen. X felfogható homogén koordinátaként. Valós koordinátára áttérés esetén a negyedik koordinátával osztani kell! Ponttal (p 0 ) és normálvektorral (n) megadott sík implicit egyenlete: n T (p p 0 ) = 0
Két sík metszésvonala Implicit egyenletekkel: Első sík: A T 1 X = 0 Második sík: A T 2 X = 0 Metszésvonal: két sík együttes megoldása BX = 0, ahol [ ] A T B = 1 B mérete: 2 4, B nulltere 2 vektor: v 1 és v 2 Egyenes pontjai: αv 1 + βv 2 Pontok homogén koordinátában vannak, osztani kell az utolsó koordinátával A T 2
Két sík metszésvonala Paraméteres egyenletekkel: Első sík: p (1) 0 + λ (1) 1 d(1) 1 + λ (1) 2 d(1) 2 Második sík: p (2) 0 + λ (2) 1 d(2) 1 + λ (2) 2 d(2) 2 Metszésvonal: a két egyenlet közös megoldása: p (1) 0 + λ (1) 1 d(1) 1 + λ (1) 2 d(1) 2 = p (2) 0 + λ (2) 1 d(2) 1 + λ (2) 2 d(2) 2 Mivel 3D-ben vagyunk, ez valójában 3 egyenlet, 4 ismeretlennel (λ (1) 1, λ(1) 2, λ(2) 1, λ(2) 2 ). Megoldás: egy paramétert szabadon megválaszthatunk, a másik három a lineáris egyenletrendszerből számítható.
felületi normálisa Definíció szerint a felület normálisa egy adott pontjában az érintősík normálisa. A parametrikus alakban adott a felület: n(u, v) = u p(u, v) v p(u, v) a u az u paraméter szerinti deriválást jelenti, v a v szerintit. Implicit alakban (f (x, y, z) = 0) adott felületnél n(x, y, z) = f, ahol f = [f x, f y, f z ] T ahol f x = f x, f y = f y és f z = f z Megjegyzés: mindez igaz más dimenzióban. Pl. 2D-ben érintősík helyett érintőegyenes, 4D-ben érintő alsík...stb.
Gömb Geometria modellezés Implicit: (x c x ) 2 + (y c y ) 2 + (z c z ) 2 = r 2 Parametrikus: p(u, v) = r[cos u sin v, sin u sin v, cos v] T + c (u, v) [0, 2π) [0, π]
Speciális ellipszoid Geometria modellezés Speciális (tengelyei párhuzamosak a koordinátatengellyel) ellipszoid egyenlete: Implicit: (x cx )2 + a 2 (y cy )2 b 2 + (z cz)2 c 2 1 = 0 Parametrikus: p(u, v) = [a cos u sin v, b sin u sin v, c cos v] T + c, (u, v) [0, 2π) [0, π]
Egyszerű paraboloid Explicit: z c = x 2 + y 2 a 2 b 2 Parametrikus: p(u, v) = [u, v, c u2 + c v 2 ] T a 2 b 2 A paraboloid tengelye a z tengellyel párhuzamos
Amire figyelni érdemes Matematikában általában a felfelé mutató tengelynek a z tengelyt tekintik A fenti képletek is ennek megfelelően adják a várt képet Grafikában viszont sokszor az y mutat felfelé!