Fabricjs三角管理

Fabricjs triangle management

如何从三个 lefttop 中用 fabricjs 做出正确的三角形。我尝试用 widthheight 做一些事情,但结果不是预期的。 示例:我们有 [{left:50,top:50},{left:40,top:60},{left:60,top:60}],我们如何创建具有该值的三角形?

要在布料中创建三角形,您无需设置三个顶点。要以这种方式创建三角形,您应该查看要执行以下操作的 polygons or polylines. To create an actual triangle 对象:

var triangle = new fabric.Triangle({
  width: 20, height: 30, fill: 'blue', left: 50, top: 50
});

这是一个有效的 fiddle

编辑:在设置位置(topleft)时,这些是相对于originXoriginY属性的。

canvas = new fabric.Canvas('canvas');
var p1 = {left:50,top:50}; var p2 = {left:40,top:60}; var p3 = {left:60,top:60};
var shape = new fabric.Polygon([{x:p1.left, y:p1.top},{x:p2.left, y:p2.top},{x:p3.left, y:p3.top}]);
canvas.add(shape);
<script src="http://cdnjs.cloudflare.com/ajax/libs/fabric.js/1.5.0/fabric.min.js"></script>
<canvas id='canvas' width="500" height="400" style="border:#000 1px solid;"></canvas>

您可以创建一个 fabric.Polygon([点数组...]);

每个点必须有'x'和'y'属性。

以上代码可以简化为:

canvas = new fabric.Canvas('canvas');
var p1 = {x:50,y:50}, p2 = {x:40,y:60}, p3 = {x:60,y:60};
var shape = new fabric.Polygon([p1, p2, p3]);
canvas.add(shape);