dKe*_*Ken 3 javascript svg trigonometry
我试图找到一个与垂直线中间距离相等的点.我想使用这一点来创建一个使用起点和终点的Bézier曲线,以及我想要找到的另一点.
我已经计算了垂直线,我可以在该线上绘制点,但问题是根据线的角度,点越来越远离原线,我希望能够计算所以它总是X单位.
看看这个显示原始线的JSFiddle,沿着垂直线绘制一些点:
如果更改起点和终点,则可以看到这些绘制的点越来越近或越来越远.
无论角度是多少,我怎样才能使它们相距不同?
代码snippit如下:
// Start and end points
var startX = 120
var startY = 150
var endX = 180
var endY = 130
// Calculate how far above or below the control point should be
var centrePointX = ((startX + endX) / 2);
var centrePointY = ((startY + endY) / 2);
// Calculate slopes and Y intersects
var lineSlope = (endY - startY) / (endX - startX);
var perpendicularSlope = -1 / lineSlope;
var yIntersect = centrePointY - (centrePointX * perpendicularSlope);
// Draw a line between the two original points
R.path('M '+startX+' '+startY+', L '+endX+' '+endY);
Run Code Online (Sandbox Code Playgroud)
通常,您可以获得如下行的法线坐标:
P1 = {r * cos(a) + Cx, -r * sin(a) + Cy},
P2 = {-r * cos(a) + Cx, r * sin(a) + Cy}.
Run Code Online (Sandbox Code Playgroud)