我有一些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函数并从一个点到另一个点绘制线条,最后从最后一个点到第一个点。
是否有可用的算法或代码?
谢谢!
答案 0 :(得分:0)
在Google中进行快速搜索:convex hull algorithms,此处为Java implementation。
编辑:重新阅读你的问题并意识到这不是你想要的。标题“凸壳”可能会误导......答案 1 :(得分:0)
我认为你的问题不像看起来那么微不足道。恕我直言,它是travelling salesman problem的特殊形式,但没有相交的路径。