0
私は、境界ボックスに似た矩形要素の周囲にボックスを作成したいと思います。このボックスは、将来の開発におけるアラインメント要素として使用されます(今は本当に重要ではありません...) いつでも要素が回転し、アラインメントボックス(AB)はそれ自身を再描画する必要があります。それはまだ留まる必要があります、私は回転を適用せずに(私が前に述べたように、バウンディングボックスとまったく同じ振る舞いをします)。ctx.rectを再描画する方法は?
私の問題は次のとおりである:私はABが消え要素をクリック
- いつでも。
- 要素を回転すると、ABは要素とともに回転します。
https://jsfiddle.net/redlive/7npzqcf2/
var canvas = this.__canvas = new fabric.Canvas('canvas');
fabric.util.object.extend(fabric.Object.prototype, {
\t redrawAlignmentLines: function(){
\t this.canvas.renderAll();
const ctx = this.canvas.getContext("2d");
\t \t const rad = fabric.util.degreesToRadians(this.angle);
const bb = this.getBoundingRect();
\t \t ctx.rect(bb.left, bb.top, bb.width, bb.height);
ctx.stroke();
console.log('angleangleangle', this.angle, rad);
}
});
var red = new fabric.Rect({
\t id: 1,
left: 200,
top: 200,
width: 100,
height: 100,
fill: 'red',
angle: 30,
originX: 'center',
originY: 'center'
});
canvas.add(red);
canvas.renderAll();
red.redrawAlignmentLines();
canvas.on("object:rotating", function(e){
\t e.target.redrawAlignmentLines();
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/fabric.js/2.0.0-rc.3/fabric.js"></script>
<canvas id="canvas" width="800" height="500" style="border:1px solid #ccc"></canvas>
あなたは[この](http://fabricjs.com/bounding-rectangle)のような何かをしたいですか? – Durga
まあ...はい、いいえ...私が必要なのは、あなたが私に送ったリンクのバウンディングボックスと同じロジックを複製することですが、私が必要とするのはそれにもっと多くのものを加えることです...私は必要ですアライメントラインとして機能するラインを追加します。 –