Az előadás letöltése folymat van. Kérjük, várjon

Az előadás letöltése folymat van. Kérjük, várjon

Számítógépes geometria

Hasonló előadás


Az előadások a következő témára: "Számítógépes geometria"— Előadás másolata:

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) = (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

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:


Letölteni ppt "Számítógépes geometria"

Hasonló előadás


Google Hirdetések