Math 查找最近的直线及其x,y位置

Math 查找最近的直线及其x,y位置,math,geometry,line,point,Math,Geometry,Line,Point,假设我有下面的图表。我知道A,B,C,D,E的位置(x,y)。我的问题是如何找到哪条线与点E最近。我还想在点和最近的线之间画一条新的线(蓝色)。我怎样才能找到(x,y)来画线 您需要将点E投影到AB线上,确定该投影是否在AB段的范围内,并找到垂直于投影点的长度。CD段也一样 要找到投影点,请获取AB和AE的方向向量 AB = (B - A) AE = (E - A) 并使用的标量积查找参数 t = (AB * AE) / (AB * AB) 如果t位于rnage 0..1之外,则线段的最

假设我有下面的图表。我知道A,B,C,D,E的位置(x,y)。我的问题是如何找到哪条线与点E最近。我还想在点和最近的线之间画一条新的线(蓝色)。我怎样才能找到(x,y)来画线


您需要将点E投影到AB线上,确定该投影是否在AB段的范围内,并找到垂直于投影点的长度。CD段也一样

要找到投影点,请获取AB和AE的方向向量

AB = (B - A)
AE = (E - A)
并使用的标量积查找参数

 t = (AB * AE) / (AB * AB) 
如果t位于rnage 0..1之外,则线段的最近点为端点之一。否则找到投影点和投影长度

P = A + AB * t
Len = length(E - P)

你是指直线还是线段?这是两个不同的问题。包括维基百科在内的许多网站都在讨论如何找到点到直线的距离和/或直线上最接近另一点的点。到目前为止,你在这个问题上做了哪些研究,你到底在哪里?您尝试过任何代码吗?你能告诉我们你的代码尝试吗?如果你能计算出从点到所有线段的距离,请使用MBo的方法。如果需要回答多个点的查询,可以预处理线段并生成其Voronoi图,然后使用点定位过程。这个问题要复杂得多。我投票把这个问题作为离题题来结束,因为它是关于几何学的,而不是编程或软件开发。