ifa*_*dey 6 javascript trigonometry html5-canvas fabricjs
我正在尝试使用线条和三角形形状创建箭头.您可以在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;
Run Code Online (Sandbox Code Playgroud)
我已将 centerX 和 CenterY 的值更改为 center,它完美地实现了。更新后的代码应该如下所示。您更新的代码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
});
Run Code Online (Sandbox Code Playgroud)