Előadást letölteni
Az előadás letöltése folymat van. Kérjük, várjon
1
Számítógépes geometria
Geometriai adatstruktúrák és algoritmusok, görbék Nagy Gyula
2
Tartalom Alapok Objektumok a térben Adatstruktúrák Algoritmusok Görbék
3
Geometriai alapok 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!
4
Geometriai vektorok http://krammer. web. elte
Geometriai vektorok /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
5
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 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
6
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.
7
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) = (la, lb, lc) 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) = ( bf-ce, -af + cd, ae - bd ) (eredménye vektor) O
8
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’
9
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 b cik = ai1 b1k + ai2 b2k + ai3 b3k = ai* b*k
10
Mátrix szorzás 3X4 Sort Oszloppal szorzás szorzás szorzás 2X4 2X3
11
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)
12
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ő
13
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:
14
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
15
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
16
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.
17
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]
18
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) + y = 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’
19
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
20
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 …
21
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
22
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)
23
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 !
24
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
25
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.
26
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
27
Winner of the Computer Graphics Forum 2006 Cover Image Contest
Irodalom:
28
Objektumok megadása a térben
Alkalmazástól függő Megjelenítés függő
29
Megjelenítés Lapok és a rajtuk levő csúcsok
Inkább többször szerepeljen egy él, mint egyszer sem
30
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
31
É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
32
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
33
Láncolt lista a 1 A b c B f 4 d
34
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.
35
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
36
Konvex burok Konvexitás Csomagkötöző Oszd meg és uralkodj
37
Konvex burok Legyen Pi véges számú ponthalmaz konvex burka a legkisebb olyan konvex sokszög, amely még tartalmazza a Pi ponthalmazt.
38
Konvexitás konvex A K sokszög konvex ha bármely két pontjának összekötő szakasza is a hozzátartozik Nem konvex
39
Csomagkötöző algoritmus
Legkevésbé meredek élt választjuk az aktuális pontból Pontok sorszámai balról jobbra növekednek
40
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.
41
Oszd meg és uralkodj Két részre osztjuk a pontrendszert Felső Alsó B A
42
Görbék Folytonos Érintkezik is A görbülete is azonos
43
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
44
Bezier görbék
45
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
46
Konstrukció M12 P1 P2 M012 M0123 M123 M01 M23 P0 P3
47
Konstrukció P1 P2 P0 P3
48
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
49
Irodalom 3D objects representation and data structure
Dr Nicolas Holzschuch Modified by Longin Jan Latecki:
Hasonló előadás
© 2024 SlidePlayer.hu Inc.
All rights reserved.