G'day大家,
我有一个2d图表,上面有一些点。 我需要做的只是获得最外面的点,以便我可以将它们连接起来(实际上并不相关)。
我似乎无法理解的是我需要使用的算法才能做到这一点?
我认为这可能有助于您了解我想要实现的目标:
o o o
o x o
o o o
我想要得到的所有o和我想忽略的x。此外,这些点可以处于任何位置和任何形状,但我仍然只想抓住最外面的点。
有什么想法吗?
此外,我不确定这是否是正确的网站,如果不是,请告诉我去哪里。
谢谢!
答案 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