geometry - 给定一个多边形和一个二维点,如何找到最接近该点的多边形的特征(顶点或边)?

标签 geometry game-physics

一种简单的方法是,对于多边形中的每条边,找到该边上最接近给定点的点,然后选取最接近的点。有没有更快的算法?我的目标是实现一款 2D 《 super 马里奥银河》风格的平台游戏。

显然这可以通过 Voronoi 区域来完成,如本视频所示:http://www.youtube.com/watch?v=Ldh2YKobuWo

但是,我找不到任何处理边缘和点的 Voronoi 算法。有想法吗?

最佳答案

计算point-line distance对于每条边,然后选择最短的一条。没有捷径。 This site有很好的解释,甚至有多种语言的实现。

但是,查找“边缘上最接近给定点的点”是计算上不必要的中间结果。

关于geometry - 给定一个多边形和一个二维点,如何找到最接近该点的多边形的特征(顶点或边)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7653877/

相关文章:

"Blob"边界的算法

html - 图片(HTML 和 CSS)

java - 我的几何程序有问题

javascript - 如何用javascript在图表中表示XYZ轴?

c# - 是否可以有效地计算与数轴上的单个点 P 重叠的线段数?

game-physics - 在 3D 游戏中处理扫射/侧步

javascript - 如何用javascript制作这个几何 "translation"效果?

unity3d - 你什么时候乘以 Unity 中的 Time.deltaTime?

java - 无法处理简单的 Java.swing 游戏中的移动错误

c++ - 即使没有按下任何键,如何在屏幕上显示一些内容?