1
私のファブリックアプリケーションでは、選択したオブジェクトを、たとえば左に揃えたいと思います。オブジェクトは回転(および/またはスケーリング)される可能性があるため、オブジェクトを配置することは、オブジェクトの境界ボックスをあるエッジに合わせることを実際に意味します。ファブリックオブジェクトを回転させる方法を教えてください。
回転していないオブジェクトの場合、それは実装するのが非常に簡単です。以下 参照のサンプルコードは:
// find the minimum 'left' value
// function 'min' is used to find the minimum value of a
// given array of objects by comparing the property value
// which is returned by a given callback function
const { minValue } = min(objects, object => {
const left = object.get('left');
const originX = object.get('originX');
if (originX === 'center') {
return left - (object.get('width') * object.get('scaleX'))/2;
}
return left;
});
objects.forEach(object => {
if (object.get('originX') === 'center') {
object.set('left', minValue + (
object.get('width') * object.get('scaleX')
)/2);
} else {
object.set('left', minValue);
}
});
canvas.renderAll();
しかし、それが回転するオブジェクトのための非常に複雑です。回転したオブジェクトを、水平方向または垂直方向に計算されたオフセット/距離に変換する必要があります。
誰でもこのことについて助言を与えることはできますか?ありがとう。