3D-s számítógépes geometria

Hasonló dokumentumok
3D-s számítógépes geometria

3D-s számítógépes geometria és alakzatrekonstrukció

3D számítógépes geometria és alakzatrekonstrukció

3D-s számítógépes geometria és alakzatrekonstrukció

3D - geometriai modellezés, alakzatrekonstrukció, nyomtatás

3D - geometriai modellezés, alakzatrekonstrukció, nyomtatás

3D Számítógépes Geometria II.

3D Számítógépes Geometria II.

3D számítógépes geometria és alakzatrekonstrukció

3D Számítógépes Geometria II.

3D-s számítógépes geometria és alakzatrekonstrukció

3D számítógépes geometria és alakzatrekonstrukció

3D számítógépes geometria és alakzatrekonstrukció

Adatszerkezetek 2. Dr. Iványi Péter

Termék modell. Definíció:

TÉRINFORMATIKAI ALGORITMUSOK

Koordináta-geometria feladatgyűjtemény

TÉRINFORMATIKAI ALGORITMUSOK

TÉRINFORMATIKAI ÉS TÁVÉRZÉKELÉSI ALKALMAZÁSOK FEJLESZTÉSE

Henger eltávolítása 3D szkennelt kavicsról

Matematika szóbeli érettségi témakörök 2016/2017-es tanév őszi vizsgaidőszak

Brósch Zoltán (Debreceni Egyetem Kossuth Lajos Gyakorló Gimnáziuma) Megoldások

Koordinátageometria. , azaz ( ) a B halmazt pontosan azok a pontok alkotják, amelynek koordinátáira:

MATEMATIKA ÉRETTSÉGI TÍPUSFELADATOK EMELT SZINT Koordinátageometria

Koordinátageometria. M veletek vektorokkal grakusan. Szent István Egyetem Gépészmérnöki Kar Matematika Tanszék 1

Koordináta-geometria feladatok (emelt szint)

5. előadás. Skaláris szorzás

Háromszögek, négyszögek, sokszögek 9. évfolyam

Helyvektorok, műveletek, vektorok a koordináta-rendszerben

Koordináta-geometria feladatok (középszint)

Brósch Zoltán (Debreceni Egyetem Kossuth Lajos Gyakorló Gimnáziuma) Megoldások

Geometriai modellezés. Szécsi László

Vektorgeometria (1) First Prev Next Last Go Back Full Screen Close Quit

Számítógépes Grafika mintafeladatok

(Solid modeling, Geometric modeling) Testmodell: egy létező vagy elképzelt objektum digitális reprezentációja.

Érettségi feladatok Koordinátageometria_rendszerezve / 5

MATEMATIKA ÉRETTSÉGI TÍPUSFELADATOK MEGOLDÁSAI KÖZÉPSZINT Koordináta-geometria

3D-s számítógépes geometria és alakzatrekonstrukció

10. Koordinátageometria

Robotika. Kinematika. Magyar Attila

Vektorok összeadása, kivonása, szorzás számmal, koordináták

2016/2017. Matematika 9.Kny

17. előadás: Vektorok a térben

Koordináta-geometria feladatgyűjtemény (A feladatok megoldásai a dokumentum végén találhatók)

Geometriai feladatok, 9. évfolyam

Osztályozóvizsga-tematika 8. évfolyam Matematika

Megoldások. Brósch Zoltán (Debreceni Egyetem Kossuth Lajos Gyakorló Gimnáziuma)

Koordinátageometriai gyakorló feladatok I ( vektorok )

Brósch Zoltán (Debreceni Egyetem Kossuth Lajos Gyakorló Gimnáziuma) Megoldások

Geometria 1 összefoglalás o konvex szögek

Minimum követelmények matematika tantárgyból 11. évfolyamon

Síkgeometria 12. évfolyam. Szögek, szögpárok és fajtáik

3D számítógépes geometria és alakzatrekonstrukció

Érettségi feladatok: Koordináta-geometria 1/5

2014/2015. tavaszi félév

EGYBEVÁGÓSÁGI TRANSZFORMÁCIÓK TENGELYES TÜKRÖZÉS

Skaláris szorzat: a b cos, ahol α a két vektor által bezárt szög.

Vektorok és koordinátageometria

Koordináta - geometria I.

MATEMATIKA EMELT SZINTŰ SZÓBELI VIZSGA TÉMAKÖREI (TÉTELEK) 2005

5. házi feladat. AB, CD kitér élpárra történ tükrözések: Az ered transzformáció: mivel az origó xpont, így nincs szükség homogénkoordinátás

Koordinátageometria Megoldások

TANMENET. Matematika

A kör. A kör egyenlete

λ 1 u 1 + λ 2 v 1 + λ 3 w 1 = 0 λ 1 u 2 + λ 2 v 2 + λ 3 w 2 = 0 λ 1 u 3 + λ 2 v 3 + λ 3 w 3 = 0

9. Írjuk fel annak a síknak az egyenletét, amely átmegy az M 0(1, 2, 3) ponton és. egyenessel;

FELVÉTELI VIZSGA, szeptember 12.

10. előadás. Konvex halmazok

Matematika osztályozó vizsga témakörei 9. évfolyam II. félév:

Nagy András. Feladatok a koordináta-geometria, egyenesek témaköréhez 11. osztály 2010.

Keresés képi jellemzők alapján. Dr. Balázs Péter SZTE, Képfeldolgozás és Számítógépes Grafika Tanszék

15. Koordinátageometria

Geometria. a. Alapfogalmak: pont, egyenes, vonal, sík, tér (Az alapfogalamakat nem definiáljuk)

Témák: geometria, kombinatorika és valósuínűségszámítás

egyenletrendszert. Az egyenlő együtthatók módszerét alkalmazhatjuk. sin 2 x = 1 és cosy = 0.

Tartalomjegyzék. Köszönetnyilvánítás. 1. Az alapok 1

3D - geometriai modellezés, alakzatrekonstrukció, nyomtatás

Hajder Levente 2018/2019. II. félév

2. ELŐADÁS. Transzformációk Egyszerű alakzatok

Brósch Zoltán (Debreceni Egyetem Kossuth Lajos Gyakorló Gimnáziuma) Vektorok I.

HASONLÓSÁGGAL KAPCSOLATOS FELADATOK. 5 cm 3 cm. 2,4 cm

Feladatok a májusi emelt szintű matematika érettségi példáihoz Hraskó András

3D - geometriai modellezés, alakzatrekonstrukció, nyomtatás

MAGISTER GIMNÁZIUM TANMENET OSZTÁLY

Összeállította: dr. Leitold Adrien egyetemi docens

Megyei matematikaverseny évfolyam 2. forduló

16. tétel Egybevágósági transzformációk. Konvex sokszögek tulajdonságai, szimmetrikus sokszögek

Számítógépes képelemzés 7. előadás. Dr. Balázs Péter SZTE, Képfeldolgozás és Számítógépes Grafika Tanszék

2004_02/10 Egy derékszögű trapéz alapjainak hossza a, illetve 2a. A rövidebb szára szintén a, a hosszabb b hosszúságú.

Exponenciális és logaritmusos kifejezések, egyenletek

Koordináta-geometria II.

A Vonallánc készlet parancsai lehetővé teszik vonalláncok és sokszögek rajzolását.

EÖTVÖS LORÁND SZAKKÖZÉP- ÉS SZAKISKOLA TANÍTÁST SEGÍTŐ OKTATÁSI ANYAGOK MÉRÉS TANTÁRGY

Feladatok. 1. a) Mekkora egy 5 cm oldalú négyzet átlója?

TANMENET. a matematika tantárgy tanításához 11.E osztályok számára

3D - geometriai modellezés, alakzatrekonstrukció, nyomtatás

Brósch Zoltán (Debreceni Egyetem Kossuth Lajos Gyakorló Gimnáziuma) Trigonometria III.

MATEMATIKA ÉRETTSÉGI TÍPUSFELADATOK MEGOLDÁSAI KÖZÉP SZINT Koordináta-geometria

Az egyenlőtlenség mindkét oldalát szorozzuk meg 4 16-al:

KOORDINÁTA-GEOMETRIA

Átírás:

3D-s számítógépes geometria 2. Háromszöghálók http://cg.iit.bme.hu/portal/node/312 https://www.vik.bme.hu/kepzes/targyak/viiiav01 Dr. Várady Tamás BME, Villamosmérnöki és Informatikai Kar Irányítástechnika és Informatika Tanszék 3D-s számítógépes geometria 1

Tartalom Háromszöghálók bevezetés 2D: Voronoi-diagram és Delaunay-háromszögelés, egyszerű algoritmusok Háromszöghálók 3D-ben További háromszögelő algoritmusok Számítógépes reprezentáció Hasznos könyvtárak Bevezetés 2

Tesszelláció általánosan 1 Lineáris struktúrák létrehozása csúcsok egyenes élek gráfja felületek tesszellációja síklapok tömör testek tesszellációja térbeli primitív testek Háromszöghálók - bevezetés 3

Háromszöghálók 2 Alkalmazások számítógépes grafika, számítógépes játékok, animáció, virtuális valóság numerikus számítások, komplex egyenletrendszerek szimuláció, véges-elemes eljárások általában orvosi és mérnöki alkalmazások nincs szükség folytonos reprezentációra folytonos reprezentáció nem használható Előnyök egységes adatstruktúra hatékony algoritmusok hardver támogatás stb. Háromszöghálók - bevezetés 4

Háromszöghálók 3 lokálisan körlap topológia (2-manifold) nem önmetsző, nem átlapoló folytonos és orientálható egyenletes és sima Háromszöghálók - bevezetés 5

Háromszögháló algoritmusok 4 Pontfelhők Háromszöghálók Tömör testek Felületek Görbehálózatok Input: 2D-s és 3D-s pontfelhők pontfelhők + élek és él-hurkok háromszögkitöltés háromszögháló egyszerűsítés, újraháromszögelés, szépítés törött vonalas élek és megvágott (trimmelt) felületlapok Háromszöghálók - bevezetés 6

Háromszöghálók jellemzése 5 Izotrópia: egyenletes élhosszak és egyenletes szögek Mértékek: legkisebb szög a körülírt kör és a belső érintőkör sugarának aránya a leghosszabb oldal és a magasság aránya a legrövidebb oldal és a körülírható kör sugarának aránya min( a, b, c) r maximális, ha a=b=c, 3 a b c r Háromszöghálók - bevezetés 7

2D: tesszellációs algoritmusok 1 Delaunay háromszögháló (DT) a körülírható körökben nincs más pont egyértelmű, ha nincsenek körnégyszögek egyenletes háromszögeloszlás maximalizálja a legkisebb szöget minimalizálja a legnagyobb körülírható kör sugarát minimalizálja a beírható körök sugarainak összegét Belső pont vizsgálat P-O < r (?) A P O B C 2D algoritmusok 8

2D: tesszellációs algoritmusok 2 Voronoi diagram (VD) tartományokra bontás természetes módon: q q q V_cella : V_él ij : V_csúcs i q-p ijk q-p : i i = q-p i < q-p, j i q-p = j j q-p = j q-p k Duális gráfok: Voronoi diagram Delaunay-háromszögháló D_csúcs( p ) V_cella D_háromszög( p D_él( p i p j i ) V_él i p j p ij k i ) V_csúcs ijk 2D algoritmusok 9

2D Delaunay: élcsere algoritmus Négy 2D-s algoritmus: Élcsere (Delaunay) Inkrementális (Delaunay) Oszd meg és uralkodj (Delaunay) Söprő egyenes (Voronoi) Élcsere algoritmus input: tetszőleges háromszögelés konvex négyszögek vizsgálata ha szükséges, lokális élcsere (edge flipping) az eljárás mindig terminál O(n 2 ) lépés 180-α α 1 α Körnégyszög kritérium szemben levő szögek összege: 180 első eset: α 1 +(180-α) > 180 rossz átló második eset: α+(180-α 1 ) < 180 jó átló összekötés - mindig a nagyobb szögpár 180-α 1 180-α α 2D algoritmusok 10

2D Delaunay: inkrementális algoritmus Bowyer-Watson algoritmusa 1. óriás-háromszög az összes pont körül 2. pontok hozzáadása egyesével 3. körülírható körök meghatározása, amelyek tartalmazzák p i -t 4. ezen háromszögek törlése 5. a megmaradt poligon és a p i pont háromszögelése 6. óriás-háromszög törlése O(n 2 ) lépés, átlagosan 3n 2D algoritmusok 11

2D Voronoi: söprővonal algoritmus 1 Fortune algoritmusa Söprő egyenes - balról jobbra Baloldal: félkész Voronoi diagram mozgó hullámfront (beach line): parabola ívek sorozata parabolaív pontok egyenlő távolságra egy p i ponttól (D_csúcs) és a söprő egyenestől Voronoi él: szomszédos parabolaívek metszéspontjainak sorozata Két esemény: Csúcs-esemény új V_él Kör-esemény új V_csúcs n log n lépésszám 2D algoritmusok 12

2D Voronoi: söprővonal algoritmus 2 Csúcs-esemény új D_csúcs befűzése új V_cella (parabola tágul) új V_él (él szélesedik) Kör-esemény parabola eltűnik, a V_cella elkészült új V_csúcs befűzése új V_él (növekszik) 2D algoritmusok 13

Önálló feladatok** Oszd meg és uralkodj algoritmus Delaunay háromszöghálók előállításához Szemináriumi előadás és prototípus implementáció 2D algoritmusok 14

2D Delaunay: Oszd meg és uralkodj algoritmus Cignoni et al. algoritmusa Pontok rekurzív kettéosztása koordináták szerint 2 vagy 3 pontos csoportok (szakaszok és egyenesek) Csoportok összekötése felfele haladva a gráfon Alapvonal behúzása Iteráció, amíg vannak jelöltek: Kétoldali jelöltek meghatározása Megfelelő jelölt kiválasztása Új vonal behúzása n log n lépésszám 2D algoritmusok 15

3D háromszögelés 1 Kiterjesztés görbült felületekre (Kós 99) távolság: legrövidebb felületi görbeszakasz hossza általánosított Voronoi cellák és Delaunay háromszögek Általánosított szögkritérium görbült négyszögekre ha β + δ < α + γ BD összekötés 3D háromszögelés 16

3D háromszögelés 2 Gyakorlati elvárások: általános topológia: nyitott vagy zárt felületek, lyukak zajos, nagyon egyenlőtlen eloszlású pontok nem projektálható, nem orientálható ponthalmazok 3D háromszögelés 17

3D háromszögelés 3 Előfeldolgozás octree lokális normálvektor becslés szomszédsági gráf Lokális Delaunay-háromszögelés pontonként a normál síkban A és C összekötése (?) a négyszög szabály szerint: AB j CB j+1 szükség esetén B j vagy B j+1 törlése lokális háromszöglegyező előállítása Összeépítés 3D-ben inkonzisztens háromszögek esetén: szavazás előfordulás szerint 1, 2, 3 v=1 v=2 v=3 3D háromszögelés 18

3D háromszögelés 4 -példák 3D háromszögelés 19

Háromszögelés kényszerekkel Input: ponthalmaz + rögzített élek és élhurkok Ouput: háromszögháló: legkisebb szög α 0, leghosszabb él l 0 (opcionális) Iteratív eljárás kezdeti Delaunay-szerű háromszögelés új határpontok beszúrása rossz háromszögek belső pontok beszúrása, lokális korrekció További algoritmusok 20

Vágott (trimmelt) lapok háromszögelése Szabadformájú felületek: [u,v] parametrikus tartomány Analitikus felületdarabok: létezik parametrikus reprezentáció Algoritmus: [u,v] tartomány felosztása háromszögekre (szabályos háló) 3D élek közelítése törtvonallal élek visszavetítése [u,v]-be félbevágott háromszögek újraháromszögelése leképzés 2D 3D 3D háromszögháló szépítése További algoritmusok 21

Implicit felületek háromszögelése 1 Implicit felületek parametrizáció általában nincs: F(x,y,z)=0 CT, MR mérések voxel reprezentáció, cél: α konstans izofelület előállítása Háromszögelés sétáló kockák (marching cubes) A skalár mező kiértékelhető a sarokpontokban Sétáló négyzetek - 2D-s konfigurációk: Adaptív finomítás célszerű További algoritmusok 22

Implicit felületek háromszögelése 2 3D ekvivalens konfigurációk 3D példa További algoritmusok 23

Számítógépes reprezentáció 1 Minimális információ pontkoordináták, háromszögélek Cél: hatékony műveletek nagy háromszöghálókra lekérdezések átstruktúráló operációk (pl. csúcsbeszúrás, élkitörlés) Topológiai lekérdezések adott egy csúcs, él vagy lap - keressük a szomszédos csúcsokat, éleket, lapokat Geometriai lekérdezések koordináták, szögek, élhosszak környező pontok (adott sugáron belül) lokális normális- és görbületbecslés Általános struktúra n-oldalú lapok külső és belső hurkok (lyukak) Számítógépes reprezentáció 24

Fél-él (half-edge) adatstruktúra 2 Irányított élpárok a lapok körül Orientált felületek anyag (ha van) a baloldalon lyuk hurkok - fordított irányítás Csúcs adat: egy (tetszőleges) kiinduló fél-él koordináták és egyéb információk (normális stb.) Fél-él adat: kezdőpont pár ( twin, mindig létezik) lap (a háló szélén kitöltetlen) előző és/vagy következő fél-él Lap adat: egy (tetszőleges) fél-él a külső hurokból és egy-egy minden belső lyukból Számítógépes reprezentáció 25

Ingyenes C++ könyvtárak OpenMesh (www.openmesh.org) fél-él adatstruktúra általános- és háromszöghálókra hatékony lightweight könyvtár CGAL (www.cgal.org) Computational Geometry Algorithms Library rengeteg algoritmus 2D-ben és 3D-ben háromszögelés, lyukkitöltés, háló egyszerűsítés, háló finomítás, középtengelyek előállítása, Minkowski összeg, rekurzív felosztásos felületek, simítás, deformáció stb. könnyen bővíthető adatszerkezetek kapcsolat más könyvtárakhoz (Boost, GMP, BLAS, LAPACK, SciLab, Qt stb.) wrapper Pythonhoz Háromszögelő könyvtárak 26

OpenMesh: példa 1 Mesh = TriMesh/PolyMesh + Kernel + Traits Kernel: a belső tárolás módja (pl. ArrayKernel) Traits: az osztály testreszabása koordináták, pontok stb. típusai plusz információk hozzárendelése az összetevőkhöz struct MyTraits : public OpenMesh::DefaultTraits { VertexTraits { double area; }; }; typedef TriMesh_ArrayKernelT<MyTraits> MyMesh; Háromszögelő könyvtárak 27

OpenMesh: példa 2 Iterátorok - csúcsok, (fél-)élek és lapok Cirkulátorok - környező elemek VertexFaceIter: csúcs körüli lapok cirkulátora Példa: csúcs körüli lapok összterülete for(mymesh::vertexiter vi = mesh.vertices_begin(); vi!= mesh.vertices_end(); ++vi) { vi->area = 0; for(mymesh::vertexfaceiter fi = mesh.vf_iter(vi.handle()); fi; ++fi) vi->area += fi->area(); } Háromszögelő könyvtárak 28

A következő előadás tartalma háromszöghálók egyszerűsítése csúcspontok klaszterezése inkrementális eljárások progresszív hálók egyenletes mintavételezés és újrahálózás progresszív hálók normál vektorok és görbületek numerikus becslése háromszöghálók simítása 3D-s számítógépes geometria 29

Kiegészítés: a Voronoi söprővonal algoritmus adatstruktúrái Voronoi csúcsok és élek: half-edge struktúra Események: prioritásos sor az x-koordináta alapján Hullámfront: kiegyensúlyozott bináris fa (y-rendezett) Levelek: ívet definiáló csúcs és mutató a kör-eseményekre Belső gráfcsúcsok (ívek / Voronoi élek találkozása): a definiáló csúcspár és mutató a megfelelő élre p 1 p 1 p 1, p 2 p 2 p 2, p 3 p 2 p 3 p 3 (egy adott y-koordinátához tartozó ív könnyen visszakereshető) 2D algoritmusok 30