使用FabricJS的箭头形状

时间:2015-04-27 08:03:30

标签: javascript html5-canvas fabricjs trigonometry

我正在尝试使用线条和三角形形状创建箭头。您可以在jsbin上查看演示:

http://jsbin.com/xuyere/1/edit?js,output

从演示中可以看出,箭头的位置随角度变化而且不正确。我在这里做错了什么?

这是我用来计算角度的数学:

var dx = x2 - x1,
    dy = y2 - y1,
    angle = Math.atan2(dy, dx);

angle *= 180 / Math.PI;
angle += 90;

1 个答案:

答案 0 :(得分:3)

我已将centerX和CenterY的值更改为居中并且它完美无缺。更新的代码应如下所示。您更新的代码http://jsbin.com/nepiqaviqe/1/edit?js,output

var triangle = new fabric.Triangle({
angle: angle,
fill: '#207cca',
top: y2,
left: x2,
height: headLength,
width: headLength,
originX: 'center',
originY: 'center',
selectable: false
  });

  fCanvas.add(triangle);
  }


function createLineArrow(points) {
 var line = new fabric.Line(points, {
strokeWidth: 5,
stroke: '#7db9e8',
originX: 'center',
originY: 'center',
hasControls: false,
hasBorders: false,
hasRotatingPoint: false,
hoverCursor: 'default',
selectable: false
 });