milesdavis
New member
Hey Leute,
ich hätte da mal eine Frage an euch.
Ich nutze d3.js und dazu das Force-Layout.
Und zwar bekomme ich vom Webservice 2 Pfade übergeben, welche farblich herbvogehoben werden.
In der angehängten Grafik ist das Problem dargestellt. Der Startknoten ist Gelb und der Endknoten Grün. Ein Pfad ist blau, der andere schwarz.
Die Pfade werden über die ids der Knoten übergeben.
Das heisst der schwarze Pfad lautet: 1,2,3,4,5,6,7,8,9,10
Und der blaue: 1,7,8,9,10
Nun ist es so, dass beide Pfade über einen gemeinsamen Knoten gehen. Dies wäre der orangene mit der id 7.
Nun ist folgendes Problem: Ich kann zwischen diesen beiden Pfaden hin und her wechseln, also einmal zeigt er mir nur blau an und einmal nur schwarz. Beim blauen klappt es wunderbar, weil er der kürzere ist. Beim schwarzen ist es leider so, dass er mir die verbindung zwischen dem gelben knoten mit id1 und dem orangenen mit id 7 auch anzeigt. Im Bild ist es die rechte zeichnung.
Es liegt einfach daran, dass diese Verbindungen durch die Anordnung einfach existieren. Die hervorhebung des schwarzen Pfades schaut im code so aus, wobei in p der startknoten un der endknoten gespeichert sind:
Also ich schaue nur, ob es eine existierende verbindung gibt durch source und target komponente der kanten. Meine frage ist, wie kann ich verhindern, dass er mir die Verbindung zwischen den knoten 1 und knoten 7 anzeigt? Also quasi so wie im bild link? Könnte man sich die einzelnnen links zwischen den knoten irgendwie speichern und am ende den falschen rauslöschen?
ich hätte da mal eine Frage an euch.
Ich nutze d3.js und dazu das Force-Layout.
Und zwar bekomme ich vom Webservice 2 Pfade übergeben, welche farblich herbvogehoben werden.
In der angehängten Grafik ist das Problem dargestellt. Der Startknoten ist Gelb und der Endknoten Grün. Ein Pfad ist blau, der andere schwarz.
Die Pfade werden über die ids der Knoten übergeben.
Das heisst der schwarze Pfad lautet: 1,2,3,4,5,6,7,8,9,10
Und der blaue: 1,7,8,9,10
Nun ist es so, dass beide Pfade über einen gemeinsamen Knoten gehen. Dies wäre der orangene mit der id 7.
Nun ist folgendes Problem: Ich kann zwischen diesen beiden Pfaden hin und her wechseln, also einmal zeigt er mir nur blau an und einmal nur schwarz. Beim blauen klappt es wunderbar, weil er der kürzere ist. Beim schwarzen ist es leider so, dass er mir die verbindung zwischen dem gelben knoten mit id1 und dem orangenen mit id 7 auch anzeigt. Im Bild ist es die rechte zeichnung.
Es liegt einfach daran, dass diese Verbindungen durch die Anordnung einfach existieren. Die hervorhebung des schwarzen Pfades schaut im code so aus, wobei in p der startknoten un der endknoten gespeichert sind:
Code:
link.style("stroke", function(d)
{
return (p.includes(d.source) && p.includes(d.target) ? "black" : "grey";
});
Also ich schaue nur, ob es eine existierende verbindung gibt durch source und target komponente der kanten. Meine frage ist, wie kann ich verhindern, dass er mir die Verbindung zwischen den knoten 1 und knoten 7 anzeigt? Also quasi so wie im bild link? Könnte man sich die einzelnnen links zwischen den knoten irgendwie speichern und am ende den falschen rauslöschen?