一种简单的方法是,对于多边形中的每条边,找到该边上最接近给定点的点,然后选取最接近的点。有没有更快的算法?我的目标是实现一款 2D 《 super 马里奥银河》风格的平台游戏。
显然这可以通过 Voronoi 区域来完成,如本视频所示:http://www.youtube.com/watch?v=Ldh2YKobuWo
但是,我找不到任何处理边缘和点的 Voronoi 算法。有想法吗?
最佳答案
计算point-line distance对于每条边,然后选择最短的一条。没有捷径。 This site有很好的解释,甚至有多种语言的实现。
但是,查找“边缘上最接近给定点的点”是计算上不必要的中间结果。
关于geometry - 给定一个多边形和一个二维点,如何找到最接近该点的多边形的特征(顶点或边)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7653877/