TU Berlin Fakultät II
Institut für Mathematik
     

Arbeitsgruppe Geometrie

       

  

Geometry Group

Members

Projects

Lehre

Seminare


Archive





      

Mathematische Visualisierung I (Winter 2010/11)

Zurück zur Seite der Veranstaltung...

Blatt 2 (SVN, DragTool und HalfEdge)

Übung: SVN Repository der Veranstaltung auschecken

Zuerst lesen bitte alle ihre Mail. Ihr solltet eine Email erhalten haben, in der sich der Pfad und eure Zugangsdaten zum SVN Server befinden. Auf diesem Server habt ihr einen anderen Account - zwar mit demselben Namen, aber einem anderem Passwort.

Öffnet Eclipse und legt in der "SVN repository perspective" eine neue Repository Location an. Klickt mit der rechten Maustaste auf das Repository und wählt "Check Out". Diesmal enthält das Repository ein classpath sowie ein project file und sollte, nachdem ihr es ausgecheckt habt, in eurem workspace als Java Project erscheinen.

Inzwischen befinden sich weitere Projekte im Klassenpfad (siehe Rechtsklick auf das Projekt: "Build Path"->"Configure Build Path"). Diese sind Bestandteil des JTEM Projekts.

Das JTEM SVN Repository besitzt folgende URL: http:fs.math.tu-berlin.de:8000/svn/jtem. Wie bei jReality ist der Username guest und das Passwort leer. Legt wieder eine neue Repository Location an und checkt alle benötigten Pakete aus, d.h. falls weitere Abhängigkeiten entstehen, müssen die entsprechenden Projekte ebenfalls ausgecheckt werden.

Öffnet den Ordner "src-uebungen". Dort sollten sich schon zwei Pakete befinden - ein Paket "templates", welches ein Skelett für eure Hausaufgabe enthält, und eins der Gruppe ws10mv20 mit dem Namen ws10mv20.uebung01. Legt bitte nach dem gleichen Muster ein Paket für eure Gruppe an und kopiert eure HelloWorld Dateien in dieses. Übergebt dann das Paket an das Repository (Rechtsklick auf das Paket: "Team"->"Commit").

Achtung: Sollte sich zwischenzeitlich etwas am Repository geändert haben, z.B. durch das Einchecken von Dateien oder Änderungen durch einen anderen Nutzer, funktioniert das Übergeben, wie oben beschrieben, nicht. In diesem Fall, müsst ihr in die "Team Synchronizing perspective" wechseln und euren Workspace auf den neusten Stand bringen. Dazu gibt es den Button "Update All Incomming Changes". Danach solltet ihr eure Änderungen übergeben können ("Commit All Outgoing Changes").

Legt bitte ein weiteres Paket "gruppename.uebung02" für die neue Hausaufgabe an und kopiert die Klassen DragableDiscTemplate und Utils aus dem Paket templates.uebung02 in dieses.

Die restliche Zeit werden wir nutzen, um uns die alten Hausaufgaben anzugucken und die neuen zu besprechen.

Miniprojekt (Abgabe voraussichtlich am 4. November):

Startet das DraggableDiscTemplate aus eurem Paket. Es sollte eine Kreisscheibe zu sehen sein. Die Punkte dieser Kreisscheibe sind editierbar, allerdings mit einem nicht sonderlich befriedigendem Ergebnis.

Ziel dieser Übung soll es sein, einen halbwegs vernünftigen PointDragListener zu schreiben. Dabei sollt ihr die HalfEdge Datenstruktur aus JTEM nutzen und euch mit dem ToolSystem auseinandersetzen.

Versucht den Source Code zu verstehen und ändert oder implementiert die mit einem "TODO" markierten Methoden.

Eine mögliche Variante seht ihr hier . In dieser werden die Punkte in einer gewissen Umgebung des ausgewählten Punkts mitgezogen. Dies ist einfach gemacht, indem man mit Nachbarschaften (Stichwort Half Edge), einer Buckelfunktion und dem Abstand der Punkte in R3 arbeitet. Der Radius kann mit Mouse Wheel verändert werden.

Einen intrinsischen Abstand zu implementieren ist ungleich schwerer.

Gute alternative Ideen sind generell erwünscht und natürlich ist es jedem überlassen, ob er das Skelett benutzen möchte oder nicht.


Felix Knöppel . 02.11.2010.