Ich weiß nicht, ob Sie die eingebaute Animationsfunktion in Fabric verwenden können, weil Sie sagen, dass sich diese Objekte möglicherweise selbst bewegen. Aber man kann ganz leicht so etwas wie dieses machen manuell ein bisschen Mathe mit:

Sie können dies tun, indem sie sich wie eine Welle oszillierend zwischen 0 und 1. Die richtige Formel für diese Funktion zu behandeln, ist:

- Wenn der "Winkel" 0 ist, oder ein Vielfaches von 2π die Amplitude gleich 0 ist, so ist der Ball auf object1 Zentrum
- Wenn die „ang le“ist ein Vielfaches von π, die Amplitude 1 und der Ball ist in der Mitte des object2
- Wenn die Amplitude 0,5, ist der Ball zwischen den beiden Objekten
Sie können nur die Winkel erhöhen basierend auf die Zeit, zu welcher Zeit oder Dauer Sie wollen.
var animateBallBetweenObjects = function (obj1, obj2) {
// Add the "ball"
var circle = new fabric.Circle({
radius: 10,
fill: 'blue',
left: obj1.getCenterPoint().x,
top: obj1.getCenterPoint().y,
originX: 'center',
originY: 'middle',
selectable: false
});
canvas.add(circle);
var period = 1000;
var amplitude = 0;
var angle = 0;
var prevTime = Date.now();
var loop = function() {
// Calculate the new amplitude
var now = Date.now();
var elapsed = now - prevTime;
prevTime = now;
angle += Math.PI * (elapsed/(period * 0.5));
amplitude = 0.5 * (Math.sin(angle - (0.5 * Math.PI)) + 1);
// Set the new position
var obj1Center = obj1.getCenterPoint();
var obj2Center = obj2.getCenterPoint();
circle.setLeft(obj1Center.x + (amplitude * (obj2Center.x - obj1Center.x)));
circle.setTop(obj1Center.y + (amplitude * (obj2Center.y - obj1Center.y)));
canvas.renderAll();
requestAnimationFrame(loop);
}
// Animate as fast as possible
requestAnimationFrame(loop);
};
FIDDLE mit ihr hier.
Also im Grunde sagen, nachdem ich Elternform und Kinderform erstellt haben. Ich habe mich gefragt, ob es möglich ist, eine Animationsfunktion zu erstellen, die uns anweist, Eltern und Kind auszuwählen. So können Sie zum Beispiel viele Eltern-Kind-Elemente auf der Leinwand haben, und wenn Sie auf "Animation erstellen" klicken, können Sie angeben, welches Eltern-Kindelement Sie ebenfalls animieren möchten. – user1010101
Was Sie gepostet haben ist sehr nah an dem, was ich gesucht habe. Ich werde damit ein wenig herumspielen und sicherstellen, dass ich – user1010101
@ user1010101 bin Ich bin mir nicht sicher, ob ich Ihre Frage verstehe. Fragst du, ob du mehr als eine dieser Animationen gleichzeitig haben kannst? Die Antwort ist ja, Sie können so viele haben wie Sie wollen: https://mattharrison.s3.amazonaws.com/stackoverflow/animation.gif –