【发布时间】:2019-10-05 15:43:37
【问题描述】:
我正在开发一个游戏,我必须在其中找到一组点的凸包。我正在尝试选择正确的算法。点集是用户绘制的形状,因此它们是有顺序的。理想情况下,用户画一个椭圆,但他们可以画任何东西,只要它是单笔画。一些例子如下:
我想找到这些形状的凸包。我发现的所有凸包算法都假设一组随机、无序的点。哪种算法最适合我的特定情况,当用户通过单击和拖动鼠标绘制点时,点是有序的。
注意事项:
特别是,许多是输出敏感算法。 O(n log h) 其中 n 是所有点的集合中的点数,原始点,h 是凸包中的点集合。有了这些形状,我期望 h ~= n,因为它们本身就是轮廓。
最后,整个目标是找到点的最小面积矩形,例如:
除了首先找到凸包之外,谁能想到找到矩形的更好方法?经过研究,这似乎是最好的方法,但我的特殊情况可能会有所不同。
提前谢谢你!
【问题讨论】:
标签: c# algorithm computational-geometry convex-hull