Geometriai adatstruktrk s algoritmusok grbk Nagy Gyula Objektumok
Geometriai adatstruktúrák és algoritmusok, görbék Nagy Gyula
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 • Minden laptól pointerek az élekre: • Minden élhez két lap és két csúcs tartozik. n n Az csúcs megkeresése nehéz A lap megkeresése is nehéz
D 3 Láncolt listák a e 1 c 2 C f A élek a b c d e f csúcsok láb fej A D A B B D B C C D A C Csúcs A B C D lapok bal jobb 3 1 1 4 1 2 2 4 2 3 4 3 él a b d e Bal járat elő utó e f c a a b e c c d d b Jobb járat elő utó b c f d d e b f f a a e lap 1 2 3 4 4 él a c a b 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 n A 1 A 2 A 3 P ((A 3 -A 2) (A 1 -A 2))(P- A 2) 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 • 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ő B A Alsó B
Görbék • Folytonos • Érintkezik is • A görbülete is azonos
Harmadfokú görbék • P(t)=at 3+bt 2+ct+d • P’(t) =3 at 2+2 bt+c • Szeretnénk ha négy pont adná meg P 2 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 +3 t(1 -t)2 P 2+ 3 t 2(1 -t)P 3 + t 3 P 4 P 3 P 4 P 1
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ó M 12 P 1 M 0123 P 2 M 123 M 01 P 0 M 23 P 3
Konstrukció P 1 P 0 P 2 P 3
de Casteljau Algoritmus n Hasonló algoritmus a görbe leírására n t=(0. 25, 0. 33) M 12 P 1 P 2 M 23 M 01 P 0 t=0. 25 P 3
Irodalom • 3 D objects representation and data structure Dr Nicolas Holzschuche-mail: holzschu@cs. uct. ac. za Modified by Longin Jan Latecki: latecki@temple. edu
- Slides: 23