Comment faire pivoter autour d'un point spécifié dans fabric.js?

Quelqu'un pourrait-il savoir comment faire pivoter autour d'un point spécifié dans fabric.js? Par exemple,

var line1 = new fabric.Line([70, 20, 70, 100], { stroke: "#000000", strokeWidth: 6 }); 

Je voudrais le faire pivoter en fonction de son point final (70, 100) mais pas son centre.

Vous pouvez obtenir une rotation autour d'un point arbitraire en utilisant fabric.util.rotatePoint . Cela vous permettra de faire pivoter une ligne (définie par x1 , y1 , x2 et y2 ) sur une origine (définie par origin_x et origin_y ) d'un angle en degrés (définie par l' angle ).

Notez que fabric.util.rotatePoint prend une rotation en radians, même si l' angle s est habituellement spécifié en degrés lors de l'utilisation de fabric.js.

 var rotation_origin = new fabric.Point(origin_x, origin_y); var angle_radians = fabric.util.degreesToRadians(angle); var start = fabric.util.rotatePoint(new fabric.Point(x1,y1), rotation_origin, angle_radians); var end = fabric.util.rotatePoint(new fabric.Point(x2,y2), rotation_origin, angle_radians); var line1 = new fabric.Line([start.x, start.y, end.x, end.y], { stroke: '#000000', strokeWidth: 6 }); 

Vous pouvez faire de même avec d'autres objets, mais vous devrez peut-être fournir la propriété angle pour faire pivoter l'objet de manière appropriée.

Il n'y a aucun moyen de tourner autour du point arbitraire en ce moment. L'origine de la transformation – pour la mise à l'échelle et la rotation – est actuellement au centre d'un objet. Nous prévoyons d'apporter un soutien pour des origines arbitraires de transformation dans un proche avenir.