使用java / android中的给定点绘制凸包

时间:2011-04-13 09:14:06

标签: java android polygon convex-hull

我有一些2D点,我想用这些点绘制一个多边形。此多边形必须通过所有给定点,这意味着在多边形内部或外部没有这样的点。

例如:如果我有点像:(0,0),(1,1),( - 1,-1),( - 1,1)和(1,-1),如果我想使用那些绘制多边形然后我的点数组应按以下方式排序:

(1,1) - > (1,-1) - > (-1,-1) - > (-1,1) - > (0,0) - > (1,1)或

(1,1) - > (0,0) - > (-1,1) - > (-1,-1) - > (1,-1) - > (1,1)

但它不能:

(1,1) - > (0,0) - > (-1,-1) - > (-1,1) - > (-1,1) - > (1,-1) - > (1,1)

为了绘制多边形,我使用drawLine函数并从一个点到另一个点绘制线条,最后从最后一个点到第一个点。

是否有可用的算法或代码?

谢谢!

2 个答案:

答案 0 :(得分:0)

在Google中进行快速搜索:convex hull algorithms,此处为Java implementation

编辑:重新阅读你的问题并意识到这不是你想要的。标题“凸壳”可能会误导......

答案 1 :(得分:0)

我认为你的问题不像看起来那么微不足道。恕我直言,它是travelling salesman problem的特殊形式,但没有相交的路径。