2017-10-28 6 views
0

ネイティブ関数または属性を使用してFabricJSの最後の移動からデルタ/距離を取得する方法はありますか? 現在の座標が100x100であるとします。 要素を移動すると、新しい座標は90x120になります。 デルタは-10x20で、これはFabricJS関数またはネイティブjsコードを使用して取得する必要があります。FabricJS - 変換でDeltaを取得するにはどうすればいいですか?

アイデア? TNXオブジェクトにダウンマウスとマウスアップに

+0

は左(x)と上(y)座標の違いのようです – Durga

+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()を用いて座標取り、デルタ使用subtractを取得します。

+0

それらを取得するためのネイティブ関数があるのだろうかと思います。 –

+0

@EugeneVilderあなたはちょうど左と上の違いを得る必要があります。それは減算関数が返すものです。 – Durga

+0

オブジェクトを動かすのではなく、属性パネルから上部と左を設定できるので、私はMouseイベントを使うことができません。 –

関連する問題