Presentasjon lastes. Vennligst vent

Presentasjon lastes. Vennligst vent

1 ”Visualisering av trianguleringer og trianguleringsprosesser” Hovedfagspresentasjon Per-Idar Evensen 10. desember 2004.

Liknende presentasjoner


Presentasjon om: "1 ”Visualisering av trianguleringer og trianguleringsprosesser” Hovedfagspresentasjon Per-Idar Evensen 10. desember 2004."— Utskrift av presentasjonen:

1 1 ”Visualisering av trianguleringer og trianguleringsprosesser” Hovedfagspresentasjon Per-Idar Evensen 10. desember 2004

2 2 Program Bakgrunn og motivasjon Teoretiske begreper og definisjoner TTL (Triangulation Template Library) Funksjonalitet i TriangTutor Programstruktur Oppsummering og konklusjon Demo Spørsmål

3 3 Program Bakgrunn og motivasjon Teoretiske begreper og definisjoner TTL (Triangulation Template Library) Funksjonalitet i TriangTutor Programstruktur Oppsummering og konklusjon Demo Spørsmål

4 4 Bakgrunn og motivasjon Interaktiv trianguleringsapplikasjon til bruk i undervisning (INF-MAT5370 tidligere INF-TT). Demo­applikasjon for trianguleringsbiblioteket TTL (Triangulation Template Library). Visualisere Delaunay-trianguleringer i planet med og uten føringer. I tillegg visualisere noen andre konsepter relatert til Delaunay-trianguleringer. Bruke OpenGL til å generere datagrafikken.

5 5 Hovedproblemstilling Finne hensiktsmessige måter å visualisere Delaunay-trianguleringer og teorien rundt disse.

6 6 TriangTutor Delaunay-trianguleringer Voronoi-diagram Omskrivende sirkler Influensregion Høy grad av brukerinteraksjon Flytte noder rundt Plattformuavhengig (Windows og Linux/Unix) Brukervennlig (enkel å ta i bruk) og robust. Menysystem laget med Qt.

7 7 Program Bakgrunn og motivasjon Teoretiske begreper og definisjoner TTL (Triangulation Template Library) Funksjonalitet i TriangTutor Programstruktur Oppsummering og konklusjon Demo Spørsmål

8 8 Begreper og definisjoner Noder, kanter, trekanter og trianguleringer Delaunay-triangulering Voronoi-diagram Omskrivende sirkel

9 9 Trianguleringer Triangulere: dele opp geometriske flater eller plane polygoner i trekanter. Representere en flate i en datamaskin. Kartografi. Digitale terrengmodeller. Geografiske informasjonssystemer. FEM (finite element methods). Datagrafikk og visualisering.

10 10 Trianguleringer i planet Et domene med punkter i planet, og en mulig triangulering av disse.

11 11 Swapping av kanter Swapping av en kant i et stengt konvekst kvadrilateral.

12 12 Swapping av kanter Swapping av en kant i et stengt konvekst kvadrilateral.

13 13 Delaunay-triangulering 3 definisjoner: Optimal i henhold til MaxMin-vinkel kriteriet. (Minste vinkel er størst mulig). Rettlinjedualen til Voronoi-diagrammet til P. Ingen omskrivende sirkel av noen trekant i trianguleringen inneholder noen punkter fra P.

14 14 Voronoi-region Det indre av Voronoi-regionen til p i består av alle punktene x i planet som ligger nærmere p i enn noen av de andre punktene i P. pipi

15 15 Voronoi-diagram Dersom vi setter sammen Voronoi-regionene til alle punktene i P, får vi Voronoi-diagrammet P.

16 16 Delaunay-triangulering Trekker vi rette linjestykker mellom alle Voronoi-naboene i P, får vi en Delaunay-triangulering.

17 17 Delaunay-triangulering En omskrivende sirkel til en trekant i en Delaunay- triangulering av en punktmengde P omslutter ikke noen punkter fra P.

18 18 Program Bakgrunn og motivasjon Teoretiske begreper og definisjoner TTL (Triangulation Template Library) Funksjonalitet i TriangTutor Programstruktur Oppsummering og konklusjon Demo Spørsmål

19 19 TTL Generisk trianguleringsbibliotek ved at det ikke avhenger av en spesiell underliggende datastruktur. Algoritmene er implementer på et abstrakt nivå vha. G-maps med dartalgebra og  -iteratorer. Kommuniserer med datastrukturen til applikasjonen gjennom et grensesnitt eller tilpassningslag.

20 20 Applikasjon som bruker TTL Triangulation Template Library (TTL) Generiske algoritmer basert på G-maps, og enkle geometriske og topologiske operasjoner. Topologiske elementer: Darter D  {d}. Iteratorer  i : D  D, i  0, 1,2. Triangulation Template Library (TTL) Generiske algoritmer basert på G-maps, og enkle geometriske og topologiske operasjoner. Topologiske elementer: Darter D  {d}. Iteratorer  i : D  D, i  0, 1,2. Tilpassningslag Grensesnitt mot den underliggende datastrukturen. Dart klasse med  -iteratorer Traits klasse med geometriske og topologiske operasjoner og typedefinisjoner. Tilpassningslag Grensesnitt mot den underliggende datastrukturen. Dart klasse med  -iteratorer Traits klasse med geometriske og topologiske operasjoner og typedefinisjoner. Applikasjon Underliggende datastruktur

21 21 Tradisjonell trianguleringsapplikasjon Trianguleringsalgoritmer Applikasjon Underliggende datastruktur

22 22 Program Bakgrunn og motivasjon Teoretiske begreper og definisjoner TTL (Triangulation Template Library) Funksjonalitet i TriangTutor Programstruktur Oppsummering og konklusjon Demo Spørsmål

23 23 Grunnleggende funksjonalitet Lage Delaunay-trianguleringer med og uten føringer (inkrementell algoritme). Innsetting, fjerning og interaktiv flytting av noder. Innsetting av føringer (fastlagte kanter). Lese inn og lagre noder og føringer til fil. Generere vilkårlige punkter. Lagre kopi av framebufferet til fil (figurer). Zoome og panorere. Fargetabeller.

24 24 Menysystemet

25 25 Inkrementell algoritme Starter med en kunstig initiell triangulering som består av to trekanter.

26 26 Inkrementell algoritme Bygger opp trianguleringen ved å sette inn en og en node. Trianguleringen oppdateres hele tiden til å være Delaunay.

27 27 Inkrementell algoritme Bygger opp trianguleringen ved å sette inn en og en node. Trianguleringen oppdateres hele tiden til å være Delaunay.

28 28 Inkrementell algoritme Etter at alle nodene som skal være med i trianguleringen har blitt satt inn, fjerner vi den kunstige randen.

29 29 Avansert funksjonalitet Influensregion Voronoi-diagram Omskrivende sirkler

30 30 Influensregion Når det settes inn et punkt p i en Delaunay-triangulering, må et begrenset område rundt p retrianguleres for at trianguleringen fortsatt skal være Delaunay. p

31 31 Influensregion De trekantene i trianguleringen som har omskrivende sirkler som inneholder p, er ikke lenger er Delaunay- trekanter og må derfor modifiseres. p

32 32 Influensregion p Alle trekantene i influensregionen til p har p som felles node. Dette utnytter vi når vi skal visualisere influensregioner i TriangTutor.

33 33 Voronoi-diagram For hver trekant i trianguleringen beregnes senteret i den omskrivende sirkelen, og sentrene i de omskrivende sirklene til de tre nabotrekantene. Det tegnes så tre Voronoi-kanter mellom disse. p

34 34 Voronoi-diagram p Dersom trekanten ligger på randen tegner vi en Voronoi- kant som står vinkelrett på randkanten og strekker seg langt vekk fra trianguleringen.

35 35 Voronoi-diagram p

36 36 Senter i omskrivende sirkel p Geometrisk sett kan vi finne senteret ved å konstruere midtnormalen til to av kantene i trekanten, og deretter finne skjærings­punktet mellom disse. p1p1 p2p2 p3p3

37 37 Senter i omskrivende sirkel Likningen for en sirkel med sentrum (a, b) og radius r: (x – a) 2  (y – b) 2 = r 2.  x 2 – 2ax  a 2  y 2 – 2by  b 2 = r 2. Siden denne likningen ikke er lineær lar vi q = r 2 – a 2 – b 2 Etter litt omstokking får vi da: (2x)a  (2y)b  q = x 2  y 2, som er lineær med hensyn på a, b og q. Setter vi inn for de tre punktene p 1, p 2 og p 3 får vi et likningssystem, som kan skrives på matriseform og løses ved hjelp av Cramers regel.

38 38 Senter i omskrivende sirkel Løsning: x = x 1 – y = y 1  der d ij 2 er kvadratet av avstanden mellom to punkter p i og p j : d ij 2 = (x j – x i ) 2  (y j – y i ) 2. Disse likningene er numerisk stabile og dessuten raske å beregne på grunn av relativt få divisjoner og multiplikasjoner (brukes av Jonathan R. Shewchuk).

39 39 Omskrivende sirkler Visning av alle omskrivende sirkler for en triangulering med 10 trekanter. p

40 40 Omskrivende sirkler Visning av alle omskrivende sirkler for en triangulering med 40 trekanter. p

41 41 Omskrivende sirkler Visning av omskrivende sirkler for 10 av trekantene i trianguleringen med 40 trekanter. p

42 42 Program Bakgrunn og motivasjon Teoretiske begreper og definisjoner TTL (Triangulation Template Library) Funksjonalitet i TriangTutor Programstruktur Oppsummering og konklusjon Demo Spørsmål

43 43 Programstruktur Stort program (nesten linjer!) Godt dokumentert (doxygen) Viktig å dele opp i mindre deler. Klasser (17 stk.) Verktøygruppe. Grafiske objekter (med stort sett samme oppbygning).

44 44 Klassediagram StatusBar InfluenceRegion Triangulation2D RandomTriangulation MarkedTriangle Voronoi IncrementalTriangulation ConvexHull GLScene FrameRateCounter FileTriangulation HelpLine ColorTable Circumcircle Camera TTL Triangulation MarkedTriangles ApplicationWindow

45 45 Grafisk objekt class GraphicalObject { public: GraphicalObject(ttl::Triangulation* tri, ColorTable* ct); ~GraphicalObject(); void callDisplayList(); void updateObject(); private: GLuint createDisplayList(); private: ttl::Triangulation* triangulation_; ColorTable* color_table_; GLuint display_list_; }

46 46 Hovedopptegningsfunksjonen 01 resetOpenGL(); 02 setCameraPosition() 03 if Triangulation2D != 0 04 if show_nodes 05 Triangulation2D->callNodesDisplayList() 06 Triangulation2D->callConstrainedNodesDisplayList() 07 if show_edges 08 Triangulation2D->callEdgesDisplayList() 09 Triangulation2D->callConstrainedEdgesDisplayList() 10 if show_convex_hull 11 ConvexHull->callDisplayList() 12 if show_influence_region 13 InfluenceRegion->callDisplayList() 14 if show_voronoi_diagram 15 Voronoi->callDisplayList() 16 if MarkedTriangles != 0 17 MarkedTriangles->callDisplayList() 18 if show_marked_circumcircles 19 MarkedTriangles->showCircumcircles() 20 if show_all_circumcircles 21 Circumcircles->callDisplayList() 22 if show_helpline 23 HelpLine->draw() 24 swapBuffers()

47 47 Program Bakgrunn og motivasjon Teoretiske begreper og definisjoner TTL (Triangulation Template Library) Funksjonalitet i TriangTutor Programstruktur Oppsummering og konklusjon Demo Spørsmål

48 48 Oppsummering og konklusjon Praktisk rettet hovedfagsoppgave, med mye programmering. TriangTutor har vært brukt i INF-MAT5370 undervisningen H03 (tidligere versjon) og H04. Brukes også som basis for ny hovedfagsoppgave (fotballoppgaven). Brukbart verktøy til å lage figurer/illustrasjoner. Systemkrav: 1 GHz CPU + grafikkort som støtter antialiasing.

49 49 Mulige utvidelser Implementere skripttolker. Assosiere høydeverdier til nodene og vise triangulering en i 3D. Funksjonalitet for forfining av trianguleringer eller gridding. Starte med ”uendelig” stor trekant i stedet for å starte med et rektangel delt inn i to trekanter. Lagre figurer som vektorgrafikk (Postscript eller SVG (Scalable Vector Graphics), som bygger på XML (Extensible Markup Language). ”Huske” innstillingene fra gang til gang.

50 50 Program Bakgrunn og motivasjon Teoretiske begreper og definisjoner TTL (Triangulation Template Library) Funksjonalitet i TriangTutor Programstruktur Oppsummering og konklusjon Demo (TriangTutor.exe)TriangTutor.exe Spørsmål

51 51 Program Bakgrunn og motivasjon Teoretiske begreper og definisjoner TTL (Triangulation Template Library) Funksjonalitet i TriangTutor Programstruktur Oppsummering og konklusjon Demo Spørsmål

52 52 Takk til :-) Veiledere: Morten Dæhlen Øyvind Hjelle Thomas Sevaldrud Korrekturlesere: Vera Louise Hauge Anette Gjetnes


Laste ned ppt "1 ”Visualisering av trianguleringer og trianguleringsprosesser” Hovedfagspresentasjon Per-Idar Evensen 10. desember 2004."

Liknende presentasjoner


Annonser fra Google