【发布时间】:2020-01-31 14:45:44
【问题描述】:
我在每次点击时都绘制 SVG 线时遇到问题,我需要做的是仅绘制水平/垂直线 (90 度) 或 45 度。线。 我已经解决的水平/垂直问题,我卡住的地方是绘制 45 度。如果我知道以下信息,则行:startCoordX、startCoordY、endCoordX、endCoordY、角度(正 45 度或负 -45 度。基本上我只需要调整 endCoordinates 以使它们与起始坐标形成 +-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 坐标以便绘制线...
【问题讨论】:
-
画一条水平(或垂直)线并对其应用旋转(45)变换可能吗?
-
好主意,我将再次需要对线条的长度进行某种投影,但听起来很有希望
标签: javascript math svg coordinates angle