【发布时间】:2017-01-17 16:01:10
【问题描述】:
我需要编写一个函数(在 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得到它
【问题讨论】:
-
我假设你想返回
[xp, yp],而不是提供的[xp', yp'],否则问题很简单...... :-) -
图片中好像多了一个 '。我有三个蓝色点的坐标,想要两个橙色线段的距离。
-
@ScottSauyet,我在问题中添加了我尝试过的内容。谢谢。
-
我写错了调用函数的方式...会修复它。
标签: javascript graphics transformation