Ich arbeite derzeit an einer Grafik-Visualisierung und ich verwende SVG und die D3-Bibliothek. Ich wurde von unserem Designer gefragt, ob ich die Pfeilspitzen der Kanten des Graphen auf eine Position setzen kann, die 80% der Länge der Linien entspricht. Ich war in der Lage, den ersten Teil zu erreichen - die Position zu bekommen - mit der getPointAtLength Methode.Setzen eines Pfeils (Marker) an einem bestimmten Punkt auf einem Pfad bei Verwendung der d3 Javascript-Bibliothek
var svg = d3.select("body").append("svg")
.attr("width", 960)
.attr("height", 500)
var path = svg.append("path")
.attr("d", "M20,20C400,20,20,400,400,400")
.attr("fill", "none")
.attr("stroke", "black");
var pathEl = path.node();
var pathLength = pathEl.getTotalLength();
var pathPoint = pathEl.getPointAtLength(pathLength*0.5);
var point = svg.append("svg:circle")
.style("fill", "red")
.attr("r", 5)
.attr("cx", pathPoint.x)
.attr("cy", pathPoint.y);
Hier ist ein jsfidle example
Jetzt frage ich mich, wie ich ca eine Pfeilspitze an dieser Position befestigen mit Orientierung entspricht. Noch wichtiger, wie kann ich das tun, damit ich die Kanten des Graphen aktualisieren kann, wenn ich die zugehörigen Knoten verschiebe. ich nicht in der Lage war noch keine Antwort zu finden, die Beispiele auf „Marker“ arbeitet mit Pfad Eigenschaften wie: Stil (‚Marker-End‘, „url (# end-Pfeil)“)
Das ist genau das, was ich suche. Vielen Dank ;) –