在2d图上检索最外面的点

时间:2013-01-16 08:53:41

标签: algorithm math 2d

G'day大家,

我有一个2d图表,上面有一些点。 我需要做的只是获得最外面的点,以便我可以将它们连接起来(实际上并不相关)。

我似乎无法理解的是我需要使用的算法才能做到这一点?


我认为这可能有助于您了解我想要实现的目标:

o o o
o x o
o o o

我想要得到的所有o和我想忽略的x。此外,这些点可以处于任何位置和任何形状,但我仍然只想抓住最外面的点。

有什么想法吗?

此外,我不确定这是否是正确的网站,如果不是,请告诉我去哪里。

谢谢!

3 个答案:

答案 0 :(得分:4)

您需要执行convex hull点积分。我个人更喜欢使用Graham scan,因为它很容易实现并具有良好的计算复杂性。

答案 1 :(得分:2)

如果您的2D图形由一组XY坐标表示,您可以像Ivaylo所提到的那样计算凸包。

如果您的图表类似于帖子中的示例(由2d网格地图表示),则可以使用floodfill来获取边界。

答案 2 :(得分:0)

如果您尝试在javascript中实现此功能,请查看d3.js geom.hull:https://github.com/mbostock/d3/wiki/Hull-Geom