Számítógépes geometria

Slides:



Advertisements
Hasonló előadás
A Floyd-Warshall algoritmus
Advertisements

Készítette: Nagy Mihály tanár Perecsen, 2006.
Az egyenest meghatározó adatok a koordináta-rendszerben
ALAKZATOK TRANSZFORMÁCIÓJA ÚJ KÉPSÍKOK BEVEZETÉSÉVEL
Mechanika I. - Statika 3. hét:
Koordináta transzformációk
Koordináta transzformációk
Geometriai Transzformációk
Analitikus (koordináta) geometriai gyorstalpaló
Geometriai transzformációk
Geometriai modellezés
Vektormező szinguláris pontjainak indexe
Illeszkedési mátrix Villamosságtani szempontból legfontosabb mátrixreprezentáció. Legyen G egy irányított gráf, n ponton e éllel. Az n x e –es B(G) mátrixot.
Geometriai modellezés
Illés Tibor – Hálózati folyamok
Térbeli infinitezimális izometriák
VEKTORMŰVELETEK Készítette: Sike László Kattintásra tovább.
A hasonlóság alkalmazása
A számítógépi grafika matematikai háttere
Optimalizálási módszerek 2. Konvex halmazok
Számítógépes grafika, PPKE-ITK, Benedek Csaba, 2010 Geometriai modellezés 2. előadás.
A folyamatok térben és időben zajlanak: a fizika törvényei
Modellezés és tervezés c. tantárgy Óbudai Egyetem Neumann János Informatikai Kar Alkalmazott Matematikai Intézet Mérnöki Informatikus MSc 4. Előadás A.
A GEOMETRIA MODELLEZÉSE
A TERMÉSZETTUDOMÁNYOK ALAPJAI 1. Matematika
Lineáris algebra Mátrixok, determinánsok, lineáris egyenletrendszerek
3. Vetületi ábrázolások számítási eljárásai
2. Koordináta-rendszerek és transzformációk 2.1. Koordináta-rendszerek 2.2. Az egyenes és a sík egyenlete 2.3. Affin transzformációk 2.4. Projektív transzformációk.
PTE PMMK Matematika Tanszék dr. Klincsik Mihály Matematika III. előadások MINB083, MILB083 Gépész és Villamosmérnök szak BSc képzés 2007/2008. őszi félév.
Matematika III. előadások MINB083, MILB083
Szélességi bejárás A szélességi bejárással egy irányított vagy irányítás nélküli véges gráfot járhatunk be a kezdőcsúcstól való távolságuk növekvő sorrendjében.
MATEMATIKA ÉS INFORMATIKA I.
Lineáris egyenletrendszerek (Az evolúciótól a megoldáshalmaz szerkezetéig) dr. Szalkai István Pannon Egyetem, Veszprém /' /
Gráfok Készítette: Dr. Ábrahám István.
Koordináta-geometria
Diplomamunka Geometriai invariánsokat interpoláló rekurzívan finomítható felületek Valasek Gábor ELTE IK, 2008.
Geometriai invariánsokat interpoláló rekurzívan finomítható felületek
2. Koordináta-rendszerek és transzformációk
2. Koordináta-rendszerek és transzformációk
3. Vetületi ábrázolások számítási eljárásai
2008/2009 tavasz Klár Gergely  Gyakorlatok időpontjai: ◦ Szerda 10:05–11:35 ◦ Csütörtök 10:00+ε –11:30+ε  Gyakvez: ◦ Klár Gergely ◦
Szögek és háromszögek.
Vektorok © Vidra Gábor,
16. Modul Egybevágóságok.
Szükségünk lesz valamilyen spreadsheet / táblázat kezelő programra
1. feladat Az ábrán egy épülő ház tetőszerkezetét látjuk. A „mester” szerint ez akkor lesz a legstabilabb, ha a „ferde” CD nyeregtetőt annak F felezőpontjában,
Lineáris programozás Elemi példa Alapfogalmak Általános vizsg.
ÁRAMLÓ FOLYADÉKOK EGYENSÚLYA
Analitikus geometria gyorstalpaló
Transzformációk Szirmay-Kalos László. Transzformációk (x,y) (x’,y’) = T(x,y) l Tönkre tehetik az egyenletet l Korlátozzuk a transformációkat és az alakzatokat.
2.2. Az egyenes és a sík egyenlete
2. Koordináta-rendszerek és transzformációk
2. hét: Síkbeli erőrendszerek eredője Készítette: Pomezanski Vanda
1 Vektorok, mátrixok.
Bevezetés a számítógépi grafikába 2. Paraméteres görbék Paraméteres görbe: 2D-ben: paraméter: általában: kikötések: legyen folytonos legyen folytonosan.
előadások, konzultációk
Számítógépes grafika, PPKE-ITK, Benedek Csaba, 2010 Geometriai modellezés 2. előadás.
előadások, konzultációk
HASÁBOK FELOSZTÁSA.
Geometriai feladatok programozása Geometriai programozás Szlávi Péter ELTE IK Média- és Oktatásinformatika Tanszék 2010.
Bevezetés a számítógépi grafikába
Alapvető raszteres algoritmusok, szakasz rajzolása, DDA, MidPoint algoritmus.
Bevezetés a számítógépi grafikába 1.Bevezetés: A Számítógépi grafika tárgya 2.Képek kódolása 3.A geometrikus grafika alapjai 4.Koordináta-rendszerek és.
SKALÁROK ÉS VEKTOROK.
Készítette: Horváth Zoltán
2. Koordináta-rendszerek és transzformációk
ELEMI GEOMETRIAI ISMERETEK
Geometriai Algoritmusok
Vektorok © Vidra Gábor,
Szögfüggvények és alkalmazásai Készítette: Hosszú Ildikó Nincs Készen.
Előadás másolata:

Számítógépes geometria Geometriai adatstruktúrák és algoritmusok, görbék Nagy Gyula

Tartalom Alapok Objektumok a térben Adatstruktúrák Algoritmusok Görbék

Geometriai alapok http://krammer.web.elte.hu/eltettk/grafika/jegyzet E fejezet első része a fenti helyen található előadás alapján készült. Ezúton szeretném kifejezni köszönetemet a szerző(k)nek!

Geometriai vektorok http://krammer. web. elte Geometriai vektorok http://krammer.web.elte.hu/eltettk/grafika/jegyzet /Gi41-3-KRTR1-3 alapján az irányított szakaszokat vektoroknak nevezzük. (irányított: egyik végpontját kiválasztjuk kezdőpontnak.) Egy vektor állása: egyenesének állása irányítása: K  V, vagy V  K iránya: állása és irányítása Egy vektor hossza: a KV távolság; jelölése: |v| V K v

Műveletek geometriai vektorokkal, 2 a  b = |a|  |b|  cos f; szám, 0  f  p a  b = 0, ha a merőleges b -re, a  b > 0, ha 0  f  p/2, a  b < 0, ha p/2  f  p, a × b = ( |a|  |b|  sin f ) n0; 0  f  p; a × b = 0, ha a || b, különben a × b : az a és b síkjára merőleges a, b és a × b jobbos rendszert alkotnak | a × b | = a parallelogramma területe

Műveletek geometriai vektorokkal a = b, ha irányuk és nagyságuk megegyezik, c = a + b : láncszabály, parallelogramma szabály c = a - b : a közös pontból indított b végéből a végébe. 0: nullvektor; hossza 0, iránya akármi (!) l  a: állása = a állásával, hossza |l|  |a|, irányítása megegyezik, vagy ellenkező. - a: hossza megegyezik, iránya ellentétes a-val.

Geometriai vektorok a DKR-ben P A P pont helyvektora: OP vektor Koordinátás alakja: (px, py, pz) Műveletek: a számhármasok algebrája: (a, b, c) ± (d, e, f) = (a ± d, b ± e, c ± f) (0, 0, 0) a nullvektor l  (a, b, c) = (la, lb, lc) skaláris szorzat:(a, b, c)  (d, e, f) = (a  d + b  e + c  f) (eredménye szám) vektoriális szorzat: (a, b, c) × (d, e, f) = ( bf-ce, -af + cd, ae - bd ) (eredménye vektor) O

Vektor szorzása mátrixszal Az X pont helyvektora: X = (x, y, z)T nálam oszlopvektor (de a T-t általában elspórolom) X’ = A33  X =  a11 a12 a13    x  =  a21 a22 a23   y   a31 a32 a33   z  =  a11  x + a12  y + a13  z  =  x’   a21  x + a22  y + a23  z  =  y’   a31  x + a32  y + a33  z  =  z’ 

Mátrix szorzása mátrixszal C33 = A33  B33 =  a11 a12 a13    b11 b12 b13   a21 a22 a23   b21 b22 b23   a31 a32 a33   b31 b32 b33  c11 = a11  b11 + a12  b21 + a13  b31 c12 = a11  b12 + a12  b22 + a13  b32 c13 = a11  b13 + a12  b23 + a13  b33 c21 = a21  b11 + a22  b21 + a23  b31 . . . cik = ai1  b1k + ai2  b2k + ai3  b3k = ai*  b*k

Mátrix szorzás 3X4 Sort Oszloppal szorzás szorzás szorzás 2X4 2X3

A Descartes-féle, derékszögű koordináta-rendszer Meghatározza: a kezdőpont (origó), a 3 tengely állása és egy térbeli egységpont A pontok: P = [x, y, z]T Kétféle irányítása lehet (szemléletesen): jobbsodrású (jobbos, jobbkezes): a Z végéből nézve … balsodrású (balos, balkezes)

A síkban: Meghatározza: - a kezdőpont (origó), - a 2 tengely állása - és egy térbeli egységpont Pontok: P = [x, y]T (oszlopvektor) Kétféle irányítás lehet jobbsodrású (jobbos, jobbkezes): az órajárással ellentétesen balsodrású (balos, balkezes): az órajárással egyező

A síkbeli polárkoordináta-rendszer A kezdőpont, a polár-tengely, a pozitív elfordulás iránya. P polár-koordinátái: P = (r,f); (0£r), (0£f<2p). polár-koordináták  Descartes koordináták: x = r  cos f, és y = r  sin f Descartes koordináták  polár-koordináták:

Gömbkoordináta-rendszer, térbeli polár-koordináták Alapsík, benne PKR és a Z tengely. gömbkoordináták: P = (r, f, q); (0£r), f: a polárszög (0£f<2p, az alapsíkban) q azimut, (0£q£p) henger-koordináták: P = (r, f, z) polár-koordináták  derékszögű koordináták: r = r  sin q = Öx2+y2, (az alapsíkban) x = r  cos f = r  sin q  cos f; y = r  sin f = r  sin q  sin f, z = r  cos f

Pontrendszer tömegközéppontja i=1,2,…,n tömegpontok helyvektora: pi , tömege: mi A pontrendszer tömegközéppontja: M = S ai·pi; ai = mi / S mi a pontok súlyozott összege; 0 < ai < 1 Adott pi alappontok esetén különböző mi (ai) súlyok különböző pontokat határoznak meg. p1,m1 p2,m2 p3,m3 M

Baricentrikus koordináták a0, a1,…,an  En ; és bármely n-1 kifeszíti az n dimenziós teret minden x  En -hez egyértelműen létezik {l0,l1,…ln} valósak: x = l0  a0 + l1  a1 + … + ln  an , és Sli = 1 {li}: az x {ai} -re vonatkozó baricentrikus koordinátái Tömegpontok súlypontja: li > 0 (térben 4, síkban 3, egyenesen 2 alappont) Ha x baricentrikus koordinátái pozitívak, akkor x az {ai} alappontok konvex burkán belül van.

Az egyenes egyenlete a síkban Az egyenes homogén, implicit egyenlete (E2): a·x + b·y + c = 0; a2+b2¹0; egy egyenes megadása: (a,b,c); a2+b2¹0; Homogén koordinátákkal (H2): a·x + b·y + c·w = 0; a2+b2¹0; egy egyenes megadása: [a,b,c]  h·[a,b,c]; a2+b2¹0; A homogén egyenlet Hesse-féle normál alakja (E2): a’·x + b’·y + c’=0; a’2+b’2=1; (-1 ≤ a’, b’ ≤ +1;) (a’;b’) az egyenes iránykoszinuszai (x,y,w) [a,b,c]

Az egyenes egyenlete a síkban (2) Az egyenes „iskolai egyenlete” (E2): y = M · x + B; csak ha B ¹ 0 ! Két adott pontján át: (x2-x1) · (y-y1) = (y2-y1) · (x-x1) illetve, ha x1¹x2 : y = ( (y2-y1)/(x2-x1) ) · (x- x1) + y1 = M· (x- x1) + y1 Adott pont, adott irány: b’· (y-y1) = -a’ · (x-x1); illetve, ha b’¹0 : y = M · (x- x1) + y1 ; M = a’/b’

Az egyenes egyenlete a síkban (4) Normálvektoros egyenlet: adott R pontja és n normálvektora (E2); (X - R) · n = 0, azaz: (x - rx)·nx + (y - ry)·ny = 0, illetve: X · n = R · n, azaz: x·nx + y·ny = rx·nx + ry·ny

Az egyenes paraméteres egyenlete (E2,E3) Adott (a síkban, vagy a térben) P0 és P1 pontja: X = P0 + t·(P1 –P0), átrendezve: X = (1-t)·P0 + t· P1, azaz koordinátánként: x = x0 + t·(x1–x0) átrendezve: x=(1-t)x0 + t·x1 …

Az egyenes paraméteres egyenlete (E2,E3) X = (1-t)·P + t·Q t = 0 : a P pont, t = 1 : a Q pont , 0  t  1 : a szakasz pontjai, t  0 : P oldalán kívül, t  1 : Q oldalán kívül egyenlőközű t értékek: egyenlőközű pontok, t és (1-t): baricentrikus koordináták az egyenesen

Félsík megadása (E2) Egyenlőtlenséggel: a·x + b·y + c < 0; a2+b2¹0; R n Egyenlőtlenséggel: a·x + b·y + c < 0; a2+b2¹0; Határ-egyenesével és egy pont a félsíkban A határ-egyenes egy pontja és normálvektora (R, n)

Lássunk a koordináták mögé z = 0; mi ez? Egyenlőség, egyenlet, kié-mié? 0  x + 0  y + 1  z + 0 = 0 sík: akármilyen x, y és z = 0; az XY sík x + z= 0 mi az? HF !

A sík normálvektoros egyenlete (E 3): A sík adott P pontja és n normálvektora: (X - P) · n = 0, illetve: (x-px) · nx+(y-py) · ny+(z-pz) · nz = 0; X · n = P · n, illetve: x·nx+ y·ny+ z·nz = px·nx+ py·ny+ pz·nz

A sík paraméteres egyenlete (E3): A síkot kifeszítő u, v vektor párral és P pontjával: X = P + s · u + t · v, és a koordinátákra: A sík három, nem egy egyenesbe eső P, Q és R pontjával X = Q + s·(P-Q)+ t·(R-Q), vagy: X = (1-s-t)·Q + s·P+t·R x = qx + s·(px-qx)+t·(rx-qx), vagy: x = (1-s-t)·qx +s·px+t·rx y = qy + s·(py-qy)+t·(ry-qy), vagy: y = (1-s-t)·qy +s·py+t·ry z = qz + s·(pz-qz)+t·(rz-qz), vagy: z = (1-s-t)·qz +s·pz+t·rz.

A sík paraméteres egyenlete (E3): X = Q + s·(P-Q)+ t·(R-Q), vagy: X = (1-s-t)·Q + s·P+t·R ha 0  s, t, 1-s-t  1 : a háromszög pontjai, ha közülük egy nulla: a háromszög egyik oldala, ha kettő nulla (és a harmadik 1): egyik csúcsa, ha valamelyik negatív, vagy >1: a pont kívül van. s, t, 1-s-t : baricentrikus koordináták a síkban

Winner of the Computer Graphics Forum 2006 Cover Image Contest Irodalom: http://krammer.web.elte.hu/eltettk/grafika/jegyzet

Objektumok megadása a térben Alkalmazástól függő Megjelenítés függő

Megjelenítés Lapok és a rajtuk levő csúcsok Inkább többször szerepeljen egy él, mint egyszer sem

Az alkalmazás miatt szükség lehet: Módosításokra az adatstruktúrában mozgás elemek felvétele, törlése Az illeszkedés, szomszédosság fontos színezés árnyalás

Él lista Az csúcs megkeresése nehéz A lap megkeresése is nehéz Minden laptól pointerek az élekre: Minden élhez két lap és két csúcs tartozik. Az csúcs megkeresése nehéz A lap megkeresése is nehéz

Láncolt listák D 3 a e 1 c 2 C f d A b B 4 Csúcs él lap él A a 1 a B b élek csúcsok lapok Bal járat Jobb járat láb fej bal jobb elő utó a A D 3 1 e f b c B 4 d 2 C B 4 Csúcs él lap él A a 1 a B b 2 c C d 3 a D e 4 b

Láncolt lista a 1 A b c B f 4 d

Adott pont része-e egy konvex poliédernek? Mindegyik lapra megnézzük, hogy melyik oldalán van a pont. Ha mindegyikre a belső ( poliédert a tartalmazó) félterében van akkor igen. Mit csinál a gép? Számol.

Hol van a pont? Ha minden lapra teljesül akkor benne van A lapon három egymást követő pontból, vektoriális szorzással a normál vektor előállítása Ellenőrzés: a normál vektor és a lap egy pontjából a keresett pontaba mutató vektor skaláris szorzata negatív A1 n A2 A3 P ((A3-A2) (A1-A2))(P- A2)0

Konvex burok Konvexitás Csomagkötöző Oszd meg és uralkodj

Konvex burok Legyen Pi véges számú ponthalmaz konvex burka a legkisebb olyan konvex sokszög, amely még tartalmazza a Pi ponthalmazt.

Konvexitás konvex A K sokszög konvex ha bármely két pontjának összekötő szakasza is a hozzátartozik Nem konvex

Csomagkötöző algoritmus Legkevésbé meredek élt választjuk az aktuális pontból Pontok sorszámai balról jobbra növekednek

Bonyolultság N a pontok száma, K a pontok száma a burkon Bármely pontból amelyik már a konvex burkon található meg kell vizsgálni az összes többihez tartozó meredekséget. Ez N eset. KN lépés biztosan elég. Legrosszabb eset ha minden pont burkon van, és rossz sorrendben.

Oszd meg és uralkodj Két részre osztjuk a pontrendszert Felső Alsó B A

Görbék Folytonos Érintkezik is A görbülete is azonos

Harmadfokú görbék P(t)=at3+bt2+ct+d P’(t) =3at2+2bt+c Szeretnénk ha négy pont adná meg a görbét: Az első és az utolsó pont illeszkedjen a görbére Az első és az az utolsó szakasz érintő A t paraméter 0-tól 1-ig fut, ez alatt P bejárja a görbét A feltételekből P(t)meghatározható a pontok helyvektoraival a harmadokú Bezier görbék általános alakját kapjuk: P(t)=(1-t)3P1 +3t(1-t)2P2+ 3t2(1-t)P3 + t3P4 P3 P2 P4 P1

Bezier görbék

Bezier görbék tulajdonságai Az első és az utolsó kontroll pont illeszkedik Első és az az utolsó szakasz érintő A kontroll pontok konvex burkában van Könnyű megjelenítés

Konstrukció M12 P1 P2 M012 M0123 M123 M01 M23 P0 P3

Konstrukció P1 P2 P0 P3

de Casteljau Algoritmus Hasonló algoritmus a görbe leírására t=(0.25, 0.33) M12 P2 P1 M23 M01 t=0.25 P0 P3

Irodalom 3D objects representation and data structure Dr Nicolas Holzschuche-mail: holzschu@cs.uct.ac.za Modified by Longin Jan Latecki: latecki@temple.edu