图形中的 ConvexHull - Mathematica

Posted

技术标签:

【中文标题】图形中的 ConvexHull - Mathematica【英文标题】:ConvexHull in Graphics - Mathematica 【发布时间】:2011-09-10 09:02:56 【问题描述】:

尝试使用 ComputationalGeometry 包中的 PlanarGraphplot 绘制 ConvexHull,但在图形中使用时不起作用。

关于如何使用 Graphics 绘制 ConvexHull 的任何想法?

【问题讨论】:

【参考方案1】:
Needs["ComputationalGeometry`"]
pts = RandomReal[0, 10, 60, 2];

Graphics[
 
  Point@pts,
  FaceForm[], EdgeForm[Red],
  Polygon@pts[[ConvexHull[pts]]]
  
 ]

cpts = pts[[ConvexHull[pts]]];
AppendTo[cpts, cpts[[1]]];

Graphics[
 
  Point@pts,
  Red,
  Line@cpts
  
 ]

【讨论】:

嗯,实际上你已经用 Faceform[white] 解决了这个问题。还有另一种方法,因为我可能必须在 ConvexHull 下显示一些图形 @500 如果您不想看到这些点,没有什么比省略绘制它们的线更容易的了,我为了说明目的而包括在内 (Point@pts)。我不确定我是否理解你的意思。我也不明白你关于Faceform[white] 的问题。我使用Faceform[] 使多边形透明。 谢谢。对不起,我现在明白了!【参考方案2】:

不确定到底想要什么。也许下面的代码会让你开始。

 pts = RandomReal[-10, 10, 20, 2]
(*
Out[1]= 1.7178, -1.11179, -7.10708, -8.1637,
 8.74461, -2.42551, 6.64129, -2.87008, 9.9008, 6.47825,
 8.27081, 9.94116, 9.97325, 7.61094, -2.7876, 9.70449,
 -3.69357, 0.0253506, -0.503817, -1.98649, 6.3056, -1.16892,
 -4.69983, -1.93242, -6.09983, 7.49229, 8.08545, 6.67951,
 -6.91195, 8.34752, -2.63136, 6.0506, -0.130006, 2.10929,
 1.64401, 3.32165, 0.611335, -8.11364, -2.03548, -9.37277
*)
With[hull = pts[[Graphics`Mesh`ConvexHull[pts]]], 
  Graphics[Line[Append[hull, First[hull]]]]]

【讨论】:

哎哟。我忘了如何附加 gif。 您可能在开玩笑,但以防万一:按编辑窗口上方的小图形按钮以提供链接或路径。我通常会导出为 PNG,因为如果我没记错的话,它的颜色分辨率比 GIF 更好。 投票删除。没有 gif,没有答案。 不是在开玩笑。实际上,我做得正确,但没有图像出现。为 jpeg 但不是 gif 工作?! 这很奇怪;我通常将 GIF 用于 ***。

以上是关于图形中的 ConvexHull - Mathematica的主要内容,如果未能解决你的问题,请参考以下文章

[OpenCV] Samples 05: convexhull

在openCV2 Python中绘制convexHull

Scipy ConvexHull 和 QHull:等级/维度不是最大的

C ++ ConvexHull点算法(及其索引)

获取创建 ConvexHull 的点的索引

Python OpenCV - ConvexHull 错误“点不是 numpy 数组,也不是标量”?