Knoten und Kanten im Browser? – Ja klar! Nur womit?

19 Jun

Es ist wieder an der Zeit, etwas über den Zwischenstand von ADORE zu berichten. Da ich ja mittels JavaScript im Browser Graphen, genauer Knoten und Kanten zeichnen möchte, habe ich mich in den vergangenen zwei Wochen umgesehen, welche Möglichkeiten es dazu schon gibt. Die interessantesten Graph-Bibliotheken habe ich mir dann genauer angesehen. Das war nicht so einfach, da meine Untersuchung (Analyse möchte ich das nicht nennen) recht informal sein musste – eine genaue, qualitative Bewertung hätte harte Kriterien erfordert, wie z.B. „wie viele Mannstunden benötigt man, um Funktionalität X mit Bibliothek Y zu implementieren“. Das ist natürlich in einer Bachelor-Arbeit schon rein zeitlich nicht möglich. Schlussendlich habe ich sechs verschiedene Graph Bibliotheken betrachtet. Eigentlich würden sich alle „recht gut“ bis „sehr gut“ für mein Unternehmen eignen. Anhand einiger Kriterien kann man dann aber doch ein paar ausschließen, so ist die Dracula Graph Library zwar recht übersichtlich was den Funktionsumfang angeht und daher leicht für einfache Dinge zu verwenden, allerdings fehlt die Dokumentation völlig. Das andere Extrem stellt z.B. D3.js dar, indem es einem mit verschiedensten Graph-Typen fast schon erschlägt. Die Hürde, hier eigenen Code zu schreiben ist auch recht hoch, da man sich doch recht tief in die (hier vorhandene) Dokumentation einlesen muss. Ein weiteres Kriterium ist ein technisches: so kann man Grafiken im Browser mittels SVG oder mittels <canvas> Tag und JavaScript zeichnen. Nicht alle Bibliotheken unterstützen beide Methoden. Ich habe mich auf jeden Fall entschlossen, für meine Entwicklung jsPlumb zu verwenden (wie schon im letzten Blogpost erwähnt) – jsPlumb stellt einen guten Kompromiss zwischen Einarbeitungsaufwand und Funktionalität dar.Einen einfachen Graphen mit zwei Knoten und einer Kante kann man relativ leicht umsetzen: die Knoten kann man per <div> Tag darstellen (plus: schön per CSS formatierbar und kann weiteren HTML-Inhalt haben), die Kante dazwischen zeichnet man dann per jsPlumb – und das ist ein Einzeiler in diesem einfachen Fall :-)

In den nächsten 3–4 Wochen werde ich verstärkt am Projekt programmieren, denn bald soll schon ein erster Prototyp fertig sein, der auch schon für erste Evaluationen verwendet werden soll. Alles weitere natürlich hier auf dem Blog!

Schreibe einen Kommentar

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s

%d Bloggern gefällt das: