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 Geometriai adatstruktúrák és algoritmusok, görbék Nagy Gyula.

Hasonló előadás


Az előadások a következő témára: "Számítógépes geometria Geometriai adatstruktúrák és algoritmusok, görbék Nagy Gyula."— 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 /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!

4 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 | K V v

5 Műveletek geometriai vektorokkal, 2 a  b = | a |  | b |  cos  ; szám, 0     a  b = 0, ha a merőleges b -re, a  b > 0, ha 0    , a  b < 0, ha     , a × b = ( | a |  | b |  sin  n  ; 0     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 (!)  a : állása = a állásával, hossza | |  | a |, irányítása megegyezik, vagy ellenkező. - a : hossza megegyezik, iránya ellentétes a -val.

7 Geometriai vektorok a DKR-ben A P pont helyvektora: OP vektor Koordinátás alakja: ( p x, p y, p z ) 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  (a, b, c) = ( a, b, 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) P 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’ = A 33  X =  a 11 a 12 a 13    x  =  a 21 a 22 a 23   y   a 31 a 32 a 33   z  =  a 11  x + a 12  y + a 13  z  =  x’   a 21  x + a 22  y + a 23  z  =  y’   a 31  x + a 32  y + a 33  z  =  z’ 

9 Mátrix szorzása mátrixszal C 33 = A 33  B 33 =  a 11 a 12 a 13    b 11 b 12 b 13   a 21 a 22 a 23   b 21 b 22 b 23   a 31 a 32 a 33   b 31 b 32 b 33  c 11 = a 11  b 11 + a 12  b 21 + a 13  b 31 c 12 = a 11  b 12 + a 12  b 22 + a 13  b 32 c 13 = a 11  b 13 + a 12  b 23 + a 13  b 33 c 21 = a 21  b 11 + a 22  b 21 + a 23  b c ik = a i1  b 1k + a i2  b 2k + a i3  b 3k = a i*  b *k

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

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,  (0  r), (0  <2  ).  polár-koordináták  Descartes koordináták: x = r  cos , és y = r  sin   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,  ; (0  r),  a polárszög (0  az alapsíkban)  azimut, (0   henger-koordináták: P = (r, , z)  polár-koordináták  derékszögű koordináták:  = r  sin  =  x 2 +y 2, (az alapsíkban) x =  cos  = r  sin   cos  ; y =  sin  = r  sin   sin , z = r  cos 

15 Pontrendszer tömegközéppontja i=1,2,…,n tömegpontok helyvektora: p i, tömege: m i A pontrendszer tömegközéppontja: M =   i ·p i ;  i = m i /  m i a pontok súlyozott összege; 0 <  i < 1 Adott p i alappontok esetén különböző m i (  i ) súlyok különböző pontokat határoznak meg. p 1,m 1 p 2,m 2 p 1,m 1 p 2,m 2 p 3,m 3 M M

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

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

18 Az egyenes egyenlete a síkban (2) Az egyenes „iskolai egyenlete” (E 2 ): y = M · x + B; csak ha B  ! Két adott pontján át: (x 2 -x 1 ) · (y-y 1 ) = (y 2 -y 1 ) · (x-x 1 ) illetve, ha x 1  x 2 : y = ( (y 2 -y 1 )/(x 2 -x 1 ) ) · (x- x 1 ) + y 1 = M· (x- x 1 ) + y 1 Adott pont, adott irány: b’· (y-y 1 ) = -a’ · (x-x 1 ); illetve, ha b’  0 : y = M · (x- x 1 ) + y 1 ; M = a’/b’

19 Az egyenes egyenlete a síkban (4) Normálvektoros egyenlet: adott R pontja és n normálvektora (E 2 ); (X - R) · n = 0, azaz: (x - r x )·n x + (y - r y )·n y = 0, illetve: X · n = R · n, azaz: x·n x + y·n y = r x ·n x + r y ·n y

20 Az egyenes paraméteres egyenlete (E 2,E 3 ) Adott (a síkban, vagy a térben) P 0 és P 1 pontja: X = P 0 + t·(P 1 –P 0 ), átrendezve: X = (1-t)·P 0 + t· P 1, azaz koordinátánként: x = x 0 + t·(x 1 –x 0 ) átrendezve: x=(1-t)x 0 + t·x 1 …

21 Az egyenes paraméteres egyenlete (E 2,E 3 ) 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 (E 2 ) Egyenlőtlenséggel: a·x + b·y + c < 0; a 2 +b 2  0; Határ-egyenesével és egy pont a félsíkban A határ-egyenes egy pontja és normálvektora ( R, n ) R n R

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-p x ) · n x +(y-p y ) · n y +(z-p z ) · n z = 0; X · n = P · n, illetve: x·n x + y·n y + z·n z = p x ·n x + p y ·n y + p z ·n z

25 A sík paraméteres egyenlete (E 3 ): 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 = q x + s·(p x -q x )+t·(r x -q x ), vagy: x = (1-s-t)·q x +s·p x +t·r x y = q y + s·(p y -q y )+t·(r y -q y ), vagy: y = (1-s-t)·q y +s·p y +t·r y z = q z + s·(p z -q z )+t·(r z -q z ), vagy: z = (1-s-t)·q z +s·p z +t·r z.

26 A sík paraméteres egyenlete (E 3 ): 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: a/jegyzet

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 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 élekcsúcsoklapokBal járatJobb járat lábfejbaljobbelőutóelőutó aAD31efbc bAB14cafd cBD12abde dBC24ecbf eCD23cdfa fAC43dbae a b c d e f A B C Csúcsél Aa Bb Cd De lapél 1a 2c 3a 4b D

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

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 n A1A1 A2A2 A3A3 ((A 3 -A 2 )  (A 1 -A 2 ))(P- A 2 )  0 P

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

37 Legyen P i véges számú ponthalmaz konvex burka a legkisebb olyan konvex sokszög, amely még tartalmazza a P i ponthalmazt.

38 Konvexitás A K sokszög konvex ha bármely két pontjának összekötő szakasza is a hozzátartozik Nem konvex 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ő B Alsó B A

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

43 Harmadfokú görbék P(t)=at 3 +bt 2 +ct+d P ’ (t) =3at 2 +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) 3 P 1 +3t(1-t) 2 P 2 + 3t 2 (1-t)P 3 + t 3 P 4 P1P1 P2P2 P3P3 P4P4

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ó P0P0 P1P1 P2P2 P3P3 M 01 M 12 M 23 M 012 M 123 M 0123

47 Konstrukció P0P0 P1P1 P2P2 P3P3

48 de Casteljau Algoritmus Hasonló algoritmus a görbe leírására t=(0.25, 0.33) P0P0 P1P1 P2P2 P3P3 M 01 M 12 M 23 t=0.25

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 Geometriai adatstruktúrák és algoritmusok, görbék Nagy Gyula."

Hasonló előadás


Google Hirdetések