Szirmay-Kalos László. Mindent számmal! Geometria megadása. Transzformációk. Koordináta rendszerek. Színek, felületi optikai tulajdonságok



Hasonló dokumentumok
Geometriai modellezés. Szécsi László

Vida János. Geometriai modellezés III. Görbék és felületek

Másodrendű felületek

3D - geometriai modellezés, alakzatrekonstrukció, nyomtatás

Hajder Levente 2018/2019. II. félév

Osztályozó és Javító vizsga témakörei matematikából 9. osztály 2. félév

Jegyzet tervezet Összeállította: Dr. Boza Pál fıiskolai tanár 2009

Számítógépes grafika

4. gyakorlat: interpolációs és approximációs görbék implementációja

Javítóvizsga témakörei matematika tantárgyból

Analízis elo adások. Vajda István október 3. Neumann János Informatika Kar Óbudai Egyetem. Vajda István (Óbudai Egyetem)

Számítógépes geometria (mester kurzus) III

Halmazok Halmazok, részhalmaz, halmazműveletek, halmazok elemszáma

Az áprilisi vizsga anyaga a fekete betűkkel írott szöveg! A zölddel írott rész az érettségi vizsgáig még megtanulandó anyag!

Szirmay-Kalos László. L(x, ω)=l e (x,ω)+ L(h(x,-ω),ω) f r (ω,x, ω) cos θ dω A jobb oldali radiancia:

5. gyakorlat. Lineáris leképezések. Tekintsük azt a valós függvényt, amely minden számhoz hozzárendeli az ötszörösét!

I. Gondolkodási módszerek: (6 óra) 1. Gondolkodási módszerek, a halmazelmélet elemei, a logika elemei. 1. Számfogalom, műveletek (4 óra)

Alkalmazott modul: Programozás

Matematika. Specializáció évfolyam

Számsorozatok Sorozat fogalma, példák sorozatokra, rekurzív sorozatokra, sorozat megadása Számtani sorozat Mértani sorozat Kamatszámítás

Térgeometria feladatok. 2. Egy négyzetes oszlop magassága háromszor akkora, mint az alapéle, felszíne 504 cm 2. Mekkora a testátlója és a térfogata?

Tartalom. Geometria közvetlen tárolása. Geometria tárolása - brute force. Valasek Gábor valasek@inf.elte.hu. Hermite interpoláció. Subdivision görbék

Matematika I. Vektorok, egyenesek, síkok

hogy a megismert fogalmakat és tételeket változatos területeken használhatjuk Az adatok, táblázatok, grafikonok értelmezésének megismerése nagyban

Koordináta - geometria I.

Fedél végeselemes analízis

Koordinátarendszerek

Jelek tanulmányozása

MATEMATIKA I. RÉSZLETES ÉRETTSÉGI VIZSGAKÖVETELMÉNY A) KOMPETENCIÁK

MATEMATIKA Kiss Árpád Országos Közoktatási Szolgáltató Intézmény Vizsgafejlesztő Központ

Felületábrázolás és alkalmazásai Maple-ben

Tűgörgős csapágy szöghiba érzékenységének vizsgálata I.

MATEMATIKA TAGOZAT 5-8. BEVEZETŐ. 5. évfolyam

Ha a síkot egyenes vagy görbe vonalakkal feldaraboljuk, akkor síkidomokat kapunk.

Matematika POKLICNA MATURA

2014/2015. tavaszi félév

KOVÁCS BÉLA, MATEMATIKA I.

Matematikai programozás gyakorlatok

HELYI TANTERV MATEMATIKA tanításához Szakközépiskola évfolyam

MAGISTER GIMNÁZIUM TANMENET OSZTÁLY

MATEMATIKA TANMENET SZAKKÖZÉPISKOLA 9.A-9.C-9.D OSZTÁLY HETI 4 ÓRA 37 HÉT/ ÖSSZ 148 ÓRA

Helyi tanterv. Batthyány Kázmér Gimnázium Matematika emelt ( óra/hét) 9-12 évfolyam Készült: 2013 február

. Typeset by AMS -TEX 0

Az osztályozó, javító és különbözeti vizsgák (tanulmányok alatti vizsgák) témakörei matematika tantárgyból

7. Szisztolikus rendszerek (Eberhard Zehendner)

Tanmenet Matematika 8. osztály HETI ÓRASZÁM: 3,5 óra ( 4-3) ÉVES ÓRASZÁM: 126 óra

3D számítógépes geometria és alakzatrekonstrukció

NT Matematika 9. (Heuréka) Tanmenetjavaslat

Valasek Gábor

NT Az érthető matematika 9. Tanmenetjavaslat

Termék modell. Definíció:

3. KÖRGEOMETRIA Körrel kapcsolatos alapismeretek

A skatulya-elv alkalmazásai

A számítógépes grafika alapjai kurzus, vizsgatételek és tankönyvi referenciák 2014

Analízisfeladat-gyűjtemény IV.

2004. december 1. Irodalom

MATEMATIKA ÉRETTSÉGI TÍPUSFELADATOK KÖZÉPSZINT Függvények

Vasúti menetrendek optimalizálása

Osztályozóvizsga követelményei

117. AA Megoldó Alfréd AA 117.

Brósch Zoltán (Debreceni Egyetem Kossuth Lajos Gyakorló Gimnáziuma) Geometria IV.

A Szekszárdi I. Béla Gimnázium Helyi Tanterve

A kutatási projekt keretében a következő feladatokat tűztük ki:

Analízis elo adások. Vajda István szeptember 24. Neumann János Informatika Kar Óbudai Egyetem. Vajda István (Óbudai Egyetem)

Matematika II. 1 sin xdx =, 1 cos xdx =, 1 + x 2 dx =

MATEMATIKA 9. osztály Segédanyag 4 óra/hét

sin x = cos x =? sin x = dx =? dx = cos x =? g) Adja meg a helyettesítéses integrálás szabályát határozott integrálokra vonatkozóan!

Félévi időbeosztás (nagyjából) házi feladat beadási határidőkkel (pontosan) Valószínűségszámítás 2. matematikusoknak és fizikusoknak, 2009 tavasz

MATEMATIKA Emelt szint évfolyam

Matematika emelt szint a évfolyam számára

Görbe- és felületmodellezés. Szplájnok Felületmodellezés

Lineáris Algebra GEMAN 203-B. A három dimenziós tér vektorai, egyenesei, síkjai

Sztojka Miroszláv LINEÁRIS ALGEBRA Egyetemi jegyzet Ungvár 2013

Széchenyi István Egyetem, 2005

Valasek Gábor tavaszi félév

MAGISTER GIMNÁZIUM TANMENET OSZTÁLY

JANUS PANNONIUS TUDOMÁNYEGYETEM. Schipp Ferenc ANALÍZIS II. ***************

Matematika III. elıadások

Elemi adatszerkezetek

8. MODELLEZÉS AZ ALKATRÉSZGYÁRTÁS TECHNOLÓGIAI TERVEZÉSÉNÉL

MATEMATIKA HETI 3 ÓRA

Földfelszín modellezés

Forgómozgás alapjai. Forgómozgás alapjai

FELVÉTELI VIZSGA, szeptember 12.

2D képszintézis. Szirmay-Kalos László

MATEMATIKA ÉRETTSÉGI VIZSGA ÁLTALÁNOS KÖVETELMÉNYEI

1.1. Gyökök és hatványozás Hatványozás Gyökök Azonosságok Egyenlőtlenségek... 3

Tartalomjegyzék. Typotex Kiadó III. Tartalomjegyzék

Tanmenetjavaslat 5. osztály

MATEMATIKA TANMENET SZAKKÖZÉPISKOLA 12.C ÉS 13.B OSZTÁLY HETI 4 ÓRA 31 HÉT/ ÖSSZ 124 ÓRA

A számítógépes grafika alapjai kurzus, vizsgatételek és tankönyvi referenciák 2016

MATEMATIKA TANTERV Bevezetés Összesen: 432 óra Célok és feladatok

Valasek Gábor

Az aperturaantennák és méréstechnikájuk

Analízis 1. (BSc) vizsgakérdések Programtervez informatikus szak tanév 2. félév

MATEMATIKA A és B variáció

MATEMATIKA évfolyam. Célok és feladatok. Fejlesztési követelmények

GAZDASÁGMATEMATIKA KÖZÉPHALADÓ SZINTEN

MIKROÖKONÓMIA I. Készítette: K hegyi Gergely és Horn Dániel. Szakmai felel s: K hegyi Gergely június

Modellek és Algoritmusok - 2.ZH Elmélet

Átírás:

Geometriai modellezés Számítógépes grafika elemei modellezés világ leírás modellezés virtuális világ képszintézis Szirmay-Kalos László felhasználó kamera virtuális világ kép képszintézis Modellezés feladatai Geometria megadása pont, görbe, terület, felület, test, fraktálok Transzformációk lokális modellezési és világkoordináta rendszer Színek, felületi optikai tulajdonságok Pontok megadása Mindent számmal! Koordináta rendszer Koordináták megadása Koordináta rendszerek Descartes Polár Homogén y x Descartes eltolás Koordináta rendszerek r φ Polár elforgatás Y h w X h Baricentrikus Homogén vetítés Görbék Görbe pontok halmaza: koordinátáik kielégítenek egy egyenletet implicit: f(x, y) = 0 Kör: (x - x0) 2 + (y - y0) 2 - r 2 = 0 explicit: x = x(t), y = y(t), t [0,] Kör: x(t) = x0 + r cos 2πt y(t) = y0 + r sin 2πt t [0,] Klasszikus görbék van egyenlet definíció = paraméterek megadása

Szabadformájú görbék Definíció kontrolpontokkal Polinom: x(t) = Σ a i t i, y(t) = Σ b i t i A polinomegyütthatók származtatása: Interpoláció Approximáció Lagrange interpoláció Kontrolpontok: r, r 2, r 3,..., r n Keressük azt az r(t) = Σ [a i, b i ] t i -t amelyre r(t ) = r, r(t 2 ) = r 2,,r(t n ) = r n, Megoldás: r(t) = Σ L i (t) r i L i (t) = Π j i (t-t j ) Π j i (t i -t j ) Lagrange interpoláció bázisfüggvényei Görbeszerkesztés Lagrange interpolációval 0 0.33 0.67 L i (t) = Π j i (t-t j ) Π j i (t i -t j ) r(t) = Σ L i (t) r i Bezier approximáció Keresett görbe: r(t) = Σ B i (t) r i B i (t): ne okozzon nem indokolt hullámokat Konvex burok tulajdonság B i (t) 0, Σ B i (t) = Bezier approximáció bázisfüggvényei r r 2 r(t) r 4 B 3 (t) B (t) B 2 (t) B 4 (t) r 3 0 B i (t) = ( ) n i t i (-t) n-i Bernstein polinomok r(t) = Σ B i (t) r i

LagrangePoly tknot( ) L(i,t) Görbék C++ -ban LagrangeCurve Interpolate(t) Primitiv Curve Interpolate(t) Point operator+ operator* BezierPoly B(i,m,t) BezierCurve Interpolate(t) Primitív és Curve class Primitive2D { Array<Point2D> points; Color color; public: Primitive2D( Color& c, int n = 0 ) : color(c), points(n) { Point2D& Point( int i ) { return points[i]; int PointNum( ) { return points.size(); ; class Curve2D : public Primitive2D { public: Curve2D( Color& c ) : Primitive2D( c ) { virtual Point2D Interpolate( double tt ) = 0; ; Lagrange polinom class LagrangePolinom { Array<double> knot_pars; public: int Degree( ) { return knot_pars.size(); double& t( int i ) { return knot_pars[i]; doublel( int i, doublett ) { double Li=.0; for(int j = 0; j < Degree(); j++) if(i!= j) Li *= (tt - t(j)) / (t(i) - t(j)); return Li; void DistributeKnotPars( int n ) { for (int i = 0; i <= n; i++) t(i) = (double)i / n; ; LagrangeCurve class LagrangeCurve2D : publiccurve2d, publiclagrangepolinom { public: LagrangeCurve2D( Color c ) : Curve2D( c ), LagrangePolinom( ) { Point2D Interpolate( doublett ) { Point2D rr(0, 0); for(int i = 0; i < Degree(); i++) rr += Point(i) * L(i, tt); return rr; ; Bezier polinom class BezierPolinom { public: doubleb( int i, doublett, int m ) { doublebi =.0; for(int j = ; j <= i; j++) Bi *= tt * (m-j)/j; for( ; j < m; j++) Bi *= (-tt); ; return Bi; BezierCurve class BezierCurve2D : public Curve2D, publicbezierpolinom { public: BezierCurve2D( Color c ) : Curve2D( c ), BezierPolinom( ) { Point2D Interpolate( doublett ) { doublebi =.0; Point2D rr(0, 0); for(int i = 0; i < PointNum(); i++) rr += Point(i ) * B(i, tt, PointNum()); return rr; ;

Bonyolult görbék Nagyon magas fokszámú polinom Összetett görbék: Több alacsony fokszámú + folytonos illesztés folytonossági kategóriák Spline Spline: C 2 folytonos összetett görbe Harmadfokú spline B-spline G 0 C 0 : r (t veg ) = r 2 (t kezd ) G 0 = C 0 G C : r (t veg ) = r 2 (t kezd ) C G C 2 : r (t veg ) = r 2 (t kezd ) Harmadfokú spline p(t) = a 3 t 3 + a 2 t 2 + a t + a 0 Új szemléletes reprezentáció: p(0) = a 0 p() = a 3 + a 2 + a + a 0 p (0) = a p i (0) p () = 3a 3 + 2a 2 + a p i (0) C folytonosság: 2 paraméter közös C 2 folytonosság: p i () = p i+ (0) p i () p i () P i+ (0) P i+ (0) B-spline Válasszunk olyan reprezentációt, amely C 2 folytonos, ha 3-t közösen birtokolnak Reprezentáció: kontrolpontok r i (t) = B 0 (t)r 0 + B (t)r + B 2 (t)r 2 + B 3 (t)r 3 r i+ (t) = B 0 (t)r + B (t)r 2 + B 2 (t)r 3 + B 3 (t)r 4 B-spline bázisfüggvények Cirkuszi elefántok + Járulékos szempont: Σ B i (t) = B 0 (t) = (-t) 3 /6 B (t) = (+3(-t)+3t(-t) 2 ) /6 B 3 (t) = t 3 /6 B 2 (t) = (+3t+3(-t)t 2 ) /6 0 B-spline görbeszegmens konvex burok tulajdonság 0 B 0 (t) = (-t) 3 /6 B (t) = (+3(-t)+3t(-t) 2 ) /6 B 3 (t) = t 3 /6 B 2 (t) = (+3t+3(-t)t 2 ) /6

A B-spline lokálisan vezérelheto NUBS: Non-Uniform B-spline B-spline minden szegmens hosszú paramétertartomány Akkor megy át a kontrol ponton, ha három egymás követo kontrolpont egymásra illeszkedik NUBS az i. szegmens t i -tol t i+ -ig. Egy kontrolpont többször is számíthat: A legalább 3-szoros pontokon a görbe átmegy NUBS rekurzív konstrukciója NUBS konstrukció t 0 t t 2 t 3 t 4 Cox-deBoor algoritmus NUBS program r[i]: n db. Vezérlopont t[i]: n+k db. csomópont Fokszám = k- Hasznos: t[k]-t[n+] B(i, k, t) { // 0/0 =. if(k == ) { if(t[i] <= t < t[i+]) return else return 0; else return ( ( t - t[i] ) * B(i, k-, t ) / ( t[i+k] - t[i] ) + (t[i+k+]-t) * B(i+, k-, t) / (t[i+k+] - t[i+]) ); NUBS(k, t) { r = 0; for(i = 0; i < N; i++) r += r[i] * B(i, k, t); return r; Végpontokon átmeno NUBS n=5 k=4 (harmadfokú) t = [0,0,0,0,,2,2,2,2] Tartomány: [0,2]

B-Spline mint NUBS Bézier görbe mint NUBS n=4 k=4 (harmadfokú) t = [-3,-2,-,0,,2,3,4] Tartomány: [0, ] n=4 k=4 (harmadfokú) t = [0,0,0,0,,,,] Tartomány: [0, ] NUBS rendszám Idáig: Nem racionális B-spline r 2 r 4 r r(t) B 3 (t) B (t) B 2 (t) B 4 (t) Idáig a súlyfüggvények: Σ B i (t) = Polinom! Súlypont: Σ (B i (t) r i ) r(t) = = Σ B i (t) r Σ i Bi (t) r 3 NURBS: Non-uniform Rational B-spline w=3 NURBS súly r 2 r 4 r r(t) w B (t) w 2 B 2 (t) w 3 B 3 (t) w 4 B 4 (t) Polinom tört! racionális Σ (w i B i (t) r i ) w r(t) = = Σ i B i (t) r Σ i wj B j (t) Σ w j B j (t) B i* (t) w= w=2 w= w= w= w=

Területek Határ + belso tartományok azonosítása Belso tartományok: ) 2) 3). belso pont Felületek Felület 3D pontok halmaza: koordinátáik kielégítenek egy egyenletet implicit: f(x, y, z) = 0 gömb: (x - x0) 2 + (y - y0) 2 + (z - z0) 2 - r 2 = 0 explicit: x = x(u,v), y = y(u,v), z = z(u,v), u,v [0,] gömb: x = x0 + r cos 2πu sin πv y = y0 + r sin 2πu sin πv z = z0 + r cos πv u,v [0,] Klasszikus felületek definíció = paraméterek megadása Kvadratikus felületek x T A x = 0 x T = [x, y, z, ] A koordináták legfeljebb másodfokon gömb, ellipszoid, sík, paraboloid, hiperboloid, hengerfelület,... Szabadformájú felületek: r(u,v) Definíció kontrolpontokkal r(u,v) = Σ Σ B i (u) B j (v) r i,j Ellipszoid Végtelen kúp x 2 + + y 2 z 2 -=0 x 2 y + 2 - z a 2 b 2 c 2 =0 2 a 2 b 2 Végtelen henger x 2 + y 2 - =0 a 2 b 2 r(u,v) = r v (u) = Σ B i (u) r i (v) r i (v) = Σ B j (v) r i,j Szabadformájú felületek 2D kontrolpont sereg: szorzatfelületek Vezérlopontok, súlyok módosítása Súlyfüggények: Interpoláció, Approximáció r(u,v) = Σ Σ B i,j (u,v) r i, j = Σ Σ B i (u) B j (v) r i, j

Vezérlopontcsoportok módosítása Szobrászkodás szabadformájú felületekkel Szobrászkodás szabadformájú felületekkel Felületmodellezés mint Poligonháló módosítás Felosztásos (subdivision) módszerek = /2 + /4 Σ Subdivision felületek (Catmull-Clark) Clark) = /4 Σ = /4 Σ + /4 Σ = /2 + /6 Σ + /6 Σ

Durva poligon modell Subdivision simítás: szint Subdivision simítás: 2. szint Ellenpéldák Testek Érvényes testek: reguláris halmaz nem lehetnek alacsony dimenziós elfajulásai minden határpont mellett van belso pont Garantáltan érvényes testet építo módszerek 2.5 dimenziós eljárások speciális felületi modellezés: B-rep Konstruktív tömörtest geometria 2.5 dimenziós módszerek Kihúzás (extrude) s(v): gerinc s(v)+b(u) Kihúzás: extrude Forgatás: rotate b(u): profil

Lapos kihúzás: r(u,v)= )=b(u)) +s(v) Csöves kihúzás s (v): s(v): gerinc r(u,v)=s(v)+ I 0 b x (u)+k 0 b z (u) I=k x s (v) K = s (v) x I k i b(u): profil Csöves kihúzás Poligon modellezés: téglatest Poligon modellezés:. extruding Poligon modellezés: 2. extruding

Poligon modellezés: 4. és 5. extruding Poligon modellezés: 6. extruding Subdivision simítás y Forgatás p x (u) x z x = p x (u) z = p z (u) x = p x (u) cos 2πv y = p x (u) sin 2πv z = p z (u) x Forgatás Felületmodellezok Test = határfelületek gyujteménye Topológiai ellenorzés (Euler tétel): csúcs + lap = él + 2

B-rep B-rep: Euler operátorok Felületi modellezo Elemi muveletek nem sérthetik a topológiát Euler operátorok A teljes topológiai információt tároljuk szárnyas él adatstruktúra MVE. V E E E Csinálj csúcsot és élt F MEF E F F Csinálj élt és lapot semmi MEVVF F Csinálj élt, két csúcsot és lapot V V2 E semmi Tetraéder Euler operátorokkal MEVVF MEF MVE Csúcs mozgatás Csúcs mozgatás. MEF.. MVE MEF Gyakorlati Euler operátorok Face extrude Face split Edge Collapse Vertexsplit CSG: konstruktív tömörtest geometria 3D ponthalmazok uniója, metszete is ponthalmaz CSG alapmuveletek Kizárás: reguláris halmazmuveletek Reguláris unió Reguláris különbség Reguláris interszekció

CSG modellezés Normál és ciklikus CSG \* * * Reprezentáció: bináris fa