In diesem Übungsblatt soll der Algorithmus aus dem 2. Übungsblatt visualisiert werden. Dazu wird ein Framework vorgegeben, das die Interaktion mit dem Benutzer übernimmt.
Das Programm-Skelett ist in Java 1.0 verfügbar und heißt RegularizePSGL.java. (Compilierbar mit javac RegularizePSGL.java und aufrufbar als Applet oder direkt als Applikation mit java RegularizePSGL. Hier ist eine HTML-Seite mit dem Applet.) Das Programm-Skelett ist auch als OpenGL-Applikation in C verfügbar, das ist die Datei main.c. Ein beispielhaftes Makefile für den Grundstudiumspool gibt's auch.
Die wesentliche Aufgabe ist also den Sweepline-Algorithmus aus Übungsblatt 2 innerhalb dieses Programm-Skeletts zu implementieren. Dazu sollte vor allem die Funktion computeData erweitert werden, so dass die Elemente der DCEL (doubly connected edge list) in dem Array edges (Größe: edgesCount) gespeichert werden. Die (nach aufsteigender Reihenfolge sortierten) Vertizes werden in vertices (Größe: verticesCount) bereitgestellt, so wie die vorgegebenen Kanten in lines (Größe: linesCount).
So könnte eine Lösung aussehen, die die Regularisierung in einem Sweep-Line-Pass durchführt und in einem zweiten Pass Faces berechnet. Das enstprechende Java-Programm bzw. C/OpenGL-Programm steht zum Download bereit.