TU Berlin Fakultät II
Institut für Mathematik
     

Arbeitsgruppe Geometrie

       

  

Geometry Group

Members

Projects


Lehre
Verlaufspläne:
  Bachelor
  Diplom
Vergangene Semester

Seminare

Images, Videos, and Games

Virtual Math Labs

Software

Contact



      

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.

Andre Heydt . 21.04.2011.