我正在尝试使用线条和三角形形状创建箭头。您可以在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;
答案 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
});