Visualisierung2
|
Dieses Programm hat zur Aufgabe einen Graphen beliebiger Groesse, mithilfe einer flaechenfuellenden Kurve zu Visualisieren. Diese Graphen werden aus einer Datei geladen und zunaechst in Cluster aufgeteilt. Hierfuer wird jeder Knoten als eigener Cluster angenommen und nach und nach zu immer groesser werdenden Clustern verschmolzen. Dies geschieht mithilfe der Modalitaeten zwischen den Graphknoten. Durch Tiefensuche wird dem Clusterbaum eine Reihenfolge der Knoten entnommen die dann auch in der finalen Visualisierung benutzt werden soll. Zunaechst werden die Knoten aber aequidistant auf einer Geraden im Intervall [0,1] angeordnet. Diese Werte werden dann verwendet um rekursiv die Kurvensegmente auf der flaechenfuellenden Kurve auf die der Knoten zu liegen kommt und schluss endlich deren Posizion auf dem Segment zu bestimmen. Fuer eine bessere Uebersichtlichkeit werden die Kanten mit einem Alphawert versehen. Die Kurven werden mit jeder Iterationsstufe groesser. Leider passt die zentrierung der Kurve in den Fensterbereich nicht exakt. Dafuer war leider keine Zeit mehr.
Einschraenkungen: Der erste Clusteringalgorithmus den ich geschrieben habe, arbeitete auf der Adjazenzmatrix. Durch die vielen 0 eintraege, die aber auch alle mit berechnet werden mussten war diese Methode sehr langsam. Die jetzige Methode arbeitet mit Listen. Im spaeteren Verlauf wurden jedoch ein paar schwaechen bemerkbar. Kanten von einen Knoten zu sich selbst duerfen nicht im Graphen vorhanden sein. Ebenso muss der Graoh zusammenhaengend sein. Knoten ohne Kanten werden ignoriert. Leider war es zum Zeitpunkt als ich das bemerkt hatte keine Zeit mehr daran etwas zu aendern. Weiters gibt es am Ende des Papers eine Moeglichkeit die Abstaende zwischen den Clustern zu erhoehen um die Uebersichtlichkeit zu steigern. Auch dazu hat aber die Zeit gefehlt.