我需要编写一个函数(在Javascript中),它接受一个线段的端点和一个附加点,并返回相对于起点的点的坐标。所以,根据这张图片:
function perpendicular_coords(x1,y1, x2,y2, xp,yp)
返回[xp',yp']
,其中xp'是沿着垂直于线段的直线与(xp,yp)的距离,yp'是从(x1,y1)到垂直直线相交的点的距离线段。
到目前为止我尝试过:
function rotateRad(cx, cy, x, y, radians) {
var cos = Math.cos(radians),
sin = Math.sin(radians),
nx = (cos * (x - cx)) + (sin * (y - cy)) + cx,
ny = (cos * (y - cy)) - (sin * (x - cx)) + cy;
return [nx, ny];
}
[xp', yp'] = rotateRad(x1,y1, xp, yp, Math.atan2(y2-y1,x2-x1));
我没有写这个功能;从https://stackoverflow.com/a/17411276/1368860获得它
答案 0 :(得分:1)
我采用了不同的方法,结合了两个功能:
不是最优雅的解决方案,但似乎有效。
生成的代码https://jsfiddle.net/qke0m4mb/
width