JGraphX mxGraph ungerichteter und gewichteter Graph


#1

Ich hab mich jetzt dazu entschlossen, mxGraph für die Animationen zu verwenden. mxGraph positioniert sogar etwas genauer.

Demo

Aber, wie man hier sieht, ist mxGraph wohl vornehmlich für gerichtete Graphen konzipiert, da auch bei jeder Edge insert nach Source und Target gefragt wird.

Also hab ich jeweils zwei Edge eingefügt. Leider sieht das wirklich… unredlich aus.

Auf SO fand ich nur das dazu: http://stackoverflow.com/questions/26084742/undirected-graphs-in-jgraphx , das will aber bei mir nicht funktionieren. Hättet ihr eine Idee, wie man ungerichtete Edge einfügen kann?


Wenn es mit mxGraph au nicht funktioniert, dann blieb nur noch selber machen übrig. :frowning:


#2

Jede Graph-API braucht bei einer Kante “source” und “target” (selbst wenn die ungerichtet ist - das sind einfach zwei vertices, was will man machen). “Das will bei mir nicht funktionieren” ist mal wieder so eine nichts-Aussage, … schwer, da nicht gleich patzig zu werden.


A*-Implementierung ist fehlerhaft
#3

Hier noch ein Beispiel:

Kanten füge ich so ein:

                if (!kants.contains(kant)) {
                    kants.add(kant);
                    mxm.beginUpdate();
                    kant.edge = mxg.insertEdge(parent, "" + kant.hashCode(), kant.k, knot.vertex, kant.k2.vertex);
                    mxm.endUpdate();
                    Thread.sleep(1000);
                    nextSeque();
                }

mxg ist mxGraph
mxm ist mxIGraphModel
Thread.sleep(1000); damit wegen der Animation
nextSeque(); erstellt das GIF

(Also nur .insertEdge() ist interessant): https://jgraph.github.io/mxgraph/docs/tutorial.html . Hab ich etwas übersehen, oder gibt es nur gerichtete Kanten?