Ich versuche herauszufinden, wie man einen Kreis entlang eines Pfades am besten interpoliert, wie es Mike Bostock in diesem Beispiel tut: http://bl.ocks.org/mbostock/1705868. Anstatt jedoch einen Übergangswert festzulegen, möchte ich in der Lage sein, eine eindeutige Dauer für jede Punkt-zu-Punkt-Interpolation festzulegen. B. Übergang des Knotens von Knoten [0] zu Knoten [1] über x Millisekunden, Übergang von Knoten [1] nach Knoten [2] über y Millisekunden, usw. Gibt es eine Möglichkeit, dies zu tun, ohne den Pfad nach oben zu zerlegen Bündel kleinerer getrennter Pfade und sie nacheinander durchlaufen? Der begrenzende Faktor scheint path.getTotalLength() zu sein - gibt es eine Möglichkeit, die Länge nur der Teilmenge eines Pfades zu erhalten?Wie wird eine bestimmte Dauer für die Interpolation entlang eines Pfads um jeweils einen Punkt festgelegt?
transition();
function transition() {
circle.transition()
.duration(10000)
.attrTween("transform", translateAlong(path.node()))
.each("end", transition);
}
// Returns an attrTween for translating along the specified path element.
function translateAlong(path) {
var l = path.getTotalLength();
return function(d, i, a) {
return function(t) {
var p = path.getPointAtLength(t * l);
return "translate(" + p.x + "," + p.y + ")";
};
};
}