【发布时间】:2012-06-14 13:55:55
【问题描述】:
我正在尝试确定二维空间中点到多边形的距离。该点可以在多边形内部或外部;多边形可以是凸的也可以是凹的。
如果点在多边形内或多边形外且距离小于用户定义的常量d,则程序应返回True; False 否则。
我发现了一个类似的问题:Distance from a point to a polyhedron or to a polygon。但是,在我的情况下,空间是 2D 的,并且多边形可以是凹的,所以它与那个空间有些不同。
我想应该有一种比将多边形偏移d 并确定它在多边形内部还是外部更简单的方法。
任何算法、代码或提示我都可以用谷歌搜索。
【问题讨论】:
-
调用代码是否需要知道距离,还是只是在一定距离内?
-
我为你找到了这个。它返回从点到多边形的实际距离(如果点在多边形之外,则为正,否则为负)。这是 Matlab 代码,但从算法的角度来看可能会有所帮助:mathworks.com/matlabcentral/fileexchange/…
-
@KendallFrey 只是它是否在一定距离内。但是,是否有可能在不知道确切距离的情况下确定它是否在一定距离内?
-
多边形上的哪个点是否重要,它可以在连接 2 个点的线上的一部分上吗?您是在寻找最小距离,还是只是在寻找任何距离?
-
@trumpetlicks 寻找最小距离。抱歉,不确定“连接 2 点的线的一部分”是什么意思。多边形边界上的任何点都很重要。