我正在尝试计算两条折线之间的最短距离。我曾想过使用扫描算法,但我不知道要考虑什么事件,因为垂直光线可以在两个顶点之间相交 ,顶点和边或两条边。我的活动是什么?有没有其他方法来计算距离?
答案 0 :(得分:1)
最小距离将始终通过其一端是多边形链P1或P2之一的顶点的区段来实现。即使通过两个平行边缘实现最小距离,这些边缘的端点也实现最小距离。 所以一个天真的算法是迭代P1的所有顶点v1,找到从v1到P2的最小距离。
找到v和P之间的最小距离的问题可以迭代P的每个边缘。
我所描述的是二次算法。如果要获得最佳O(n log n),则需要计算Voronoi图。