【问题标题】:Draw a convex hull using the given points in java/android使用 java/android 中的给定点绘制凸包
【发布时间】:2011-08-04 13:15:20
【问题描述】:

我有一些二维点,我想用这些点绘制一个多边形。这个多边形必须通过所有给定的点,这意味着多边形内部或外部都不存在这样的点。

例如:如果我有如下点:(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 函数并从一个点画线到另一个点,最后从最后一个点画到第一个点。

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

谢谢!!

【问题讨论】:

  • 但是可以是 (1,1) -> (0,0) -> (1,-1) -> (-1,-1) -> (-1,1) - > (1,1) 例如?它可以通过 (0,0) 多次传递吗?你到底想做什么?

标签: java android polygon convex-hull


【解决方案1】:

在 google 中快速搜索:convex hull algorithms,这里是Java implementation

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

【讨论】:

    【解决方案2】:

    我认为您的问题并不像看起来那么简单。恕我直言,它是travelling salesman problem 的一种特殊形式,但没有相交的路径。

    【讨论】:

      猜你喜欢
      • 2015-07-29
      • 2015-06-01
      • 2018-06-20
      • 1970-01-01
      • 2017-04-29
      • 2020-04-22
      • 2019-10-05
      • 1970-01-01
      • 2013-10-09
      相关资源
      最近更新 更多