FabricJS - 如何在转型中获得Delta?

时间:2017-10-28 19:54:57

标签: javascript fabricjs

是否有办法通过使用本机函数或属性来获取FabricJS中最后一次移动的增量/距离? 假设,当前坐标为100x100。 现在我移动一个元素,它的新坐标是90x120。 因此,delta是-10x20,这是我使用FabricJS函数或本机js代码所需要的。

有什么想法吗? TNX

1 个答案:

答案 0 :(得分:0)

var canvas = new fabric.Canvas('c');
var rect = new fabric.Rect({
  left: 50,
  top: 60,
  fill: 'blue',
  width: 150,
  height: 150,
});
canvas.add(rect);
rect.on('mousedown', rectMouseDown);
rect.on('mouseup', rectMouseUp);

function rectMouseDown(){
 this.origPos = this.getCenterPoint();
}

function rectMouseUp(){
 delta = this.getCenterPoint().subtract(this.origPos);
 console.log(delta.x,delta.y)
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/fabric.js/1.7.19/fabric.min.js"></script>
<canvas id="c" width="400" height="400"></canvas>

在鼠标按下并向上鼠标移动到对象上,使用getCenterPoint()获取中心点坐标并使用delta subtract