首页 > 解决方案 > 查找段上最近的点

问题描述

我尝试在 Javascript 中找到一种从 3 个信息中获取段上最近点坐标的方法:段端点,假设 A = [x1,y1] 和 B = [x2,y2],点 C = [x ,y]。

在此处输入图像描述

如何执行此操作?

标签: javascriptfunctiongeometrycoordinates

解决方案


制作矢量

AB = (B.X-A.X, B.Y-A.Y)
AC = (C.X-A.X, C.Y-A.Y)

然后计算线上的正交C投影AB

AD = AB * (AB.dot.AC) / (AB.dot.AB);

在坐标中:

CF = ((B.X-A.X)*(C.X-A.X)+(B.Y-A.Y)*(C.Y-A.Y)) / ((B.X-A.X)^2+(B.Y-A.Y)^2)
D.X=A.X+(B.X-A.X)*CF
D.Y=A.Y+(B.Y-A.Y)*CF

请注意,对于 caseCF<0CF>1投影点D位于AB段之外,因此最近的 pointon 段是AB相应地


推荐阅读