我有一个问题,每次单击时要绘制SVG线条,我需要做的是仅绘制水平/垂直线(90度)或45度线条。水平/垂直问题我已经解决了,卡在这里的是,如果我知道以下信息:startCoordX、startCoordY、endCoordX、endCoordY、角度(正45度或负45度),我需要绘制45度线条。基本上,我只需要调整终点坐标,使它们与起始坐标形成+-45度的角线。 到目前为止,我是这样计算两个点之间的角度:
angle(startx, starty, endx, endy) {
var dy = endy - starty;
var dx = endx - startx;
var theta = Math.atan2(dy, dx); // range (-PI, PI]
theta *= 180 / Math.PI; // rads to degs, range (-180, 180]
//if (theta < 0) theta = 360 + theta; // range [0, 360)
return Math.abs(theta) > 90 ? theta % 90 : theta;
}
你有什么想法可以实现这个功能吗?我需要另一个函数,以便返回结束的X和Y坐标,以便绘制该线条...