|
Geometry Group
Members
Projects
Lehre
Seminare
Archive
|
|
|
Mathematische Visualisierung II (Sommer 2011)
Zur Veranstaltungsseite...
Übung 3: Halfedge + GUI (RAUM: MA315)
Setup für HalfEdge:
Ein paar Infos zu HalfEdge findet ihr hier:
-
documentation of the CGAL Halfedge Data Structure oder
-
a brief introduction (flipcode.com)
Vorbereitung zum Projekt:
-
Checkt die neueste Projektversion aus. Im Classpath befinden sich jetzt folgende neuen Projekte
-
halfedge, halfedgetools
-
Checkt diese Projekte bitte über "http://fs.math.tu-berlin.de:8000/svn/jtem " aus.
-
nutzer: guest password:
-
Des Weiteren benötigen wir für Halfedge folgende jtem-Projekte:
-
beans, discretegroup, java2d, java2dx, jrworkspace, mfc, modelling, numericalMethods
-
welche ihr bitte auch über "http://fs.math.tu-berlin.de:8000/svn/jtem " auscheckt
Übungsaufgabe: Trianguliert den Zylinder mit Hilfe der Halfedge-Datastructur (Converter)
-
Als HalfedgeDatenstruktur benutzt bitte "DefaultJRHDS (DefaultJRVertex, DefaultJREdge, DefaultJRFace)" aus dem Halfedgetools-Projekt.
-
Um eure IndexedFaceSets in Halfedge und andersherum umzuwandeln benutzt bitte die Converter: "ConverterJR2Heds" und "ConverterHeds2JR"
-
Das dafür benötigte AdapterSet erzeugt ihr bitte über folgenden Code:
-
AdapterSet as = new AdapterSet();
as.addAll(AdapterSet.createGenericAdapters());
as.add(new JRPositionAdapter());
-
Ein mögliches Beispiel hierfür findet ihr bei ss11mv13.cylinder
-
Lasst euch auch andere Triangulierungen des N-gons einfallen.
Hausaufgabe: Halfedge-Games (Abgabe: 05.05)
Implementiere folgende Funktionen:
-
MarkEdge: Schreibt eine Funktion, die eine beliebige Kante farbig markiert!
-
EdgeFlip: flippt die farbig markierte Kante (funktioniert nur im Dreiecksnetz).
-
RemoveEdge: Entfernt die markierte Kante. (Untergrenze für diese Funktion sind 4 Kanten, da die Flaeche sonst nicht mehr geschlossen ist!)
-
RemoveEdge2: Zieht/"schrumpft" die markierte Kante auf einen Punkt (Anfangs-/End-/Mittelkante) zusammen. Auch hier gilt die 4 Kanten Untergrenze
-
Triangulator: Schreibt eine Funktion die jede beliebig geschlossene ngon-Fläche trianguliert
-
GUI: Implementiert eine GUI mithilfe des Pluginsystems für diese Methoden. Eine Schablone für eines solche GUI findet ihr bei ss11mv13.gui
-
Wenn ihr euren Code mit verschiedenen geschlossenen Flächen durchtesten wollt, könnt ihr dazu die Primitives von jReality verwenden. Bsp: Primitives.cube(); Primitives.icosahedron(); etc.
|