我正在寻找一种方法来有效地找到边缘上距离其他点最近的点。
假设我知道两个点,它们是边的顶点。我可以计算穿过这些点的线的方程。
计算边缘上距离平面上其他点最近的点的最佳方法是什么?
我想发布一张图片,但我没有足够的声誉点。
假设这条线由 (x1,y1)、(x2,y2) 两个点定义,“另一个点”是 (a,b)。
您要寻找的点是 (x,y)。
你可以很容易地找到黑线的方程。要找到蓝线方程,请使用 m1*m2=-1(m1 和 m2 是两条线的斜率)这一事实。
显然,您要寻找的点是两条线之间的交点。
我所说的有两个例外:
- 如果 x1=x2 则 (x,y)=(x1,b)。
- 如果 y1=y2 则 (x,y)=(a,y1)。
以下 Python 函数找到了重点(如果您不了解 Python,只需将其视为伪代码):
def get_closest_point( x1,y1, x2,y2, a,b ):
if x1==x2: return (x1,b)
if y1==y2: return (a,y1)
m1 = (y2-y1)/(x2-x1)
m2 = -1/m1
x = (m1*x1-m2*a+b-y1) / (m1-m2)
y = m2*(x-a)+b
return (x,y)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)