【问题标题】:Finding ConvexHull of points找到点的 ConvexHull
【发布时间】:2021-07-07 00:18:12
【问题描述】:

以下数组:

p = np.array([[ 0,  0],
       [ 9,  0],
       [18,  0],
       [27,  0],
       [36,  0],
       [45,  0],
       [54,  0],
       [63,  0],
       [72,  0],
       [ 0,  9],
       [ 9,  9],
       [18,  9],
       [27,  9],
       [36,  9],
       [45,  9],
       [54,  9],
       [ 0, 18],
       [ 9, 18],
       [18, 18],
       [27, 18],
       [36, 18],
       [ 0, 27],
       [ 9, 27],
       [18, 27],
       [ 0, 36]])

当我尝试从这里运行示例时 https://docs.scipy.org/doc/scipy/reference/generated/scipy.spatial.ConvexHull.html

from scipy.spatial import ConvexHull

import matplotlib.pyplot as plt
plt.plot(p[:,0], p[:,1], 'o')
for simplex in hull.simplices:
    plt.plot(points[simplex, 0], points[simplex, 1], 'k-')

我明白了:

我没有看到凸包。有谁知道为什么?

【问题讨论】:

  • 为我工作。我确实必须将您的代码从 plt.plot(points[simplex, 0], points[simplex, 1], 'k-') 更改为 plt.plot(p[simplex, 0], p[simplex, 1], 'k-')

标签: python list scipy


【解决方案1】:

只需对您的代码进行少量修改,这应该可以工作:

from scipy.spatial import ConvexHull
import matplotlib.pyplot as plt

plt.plot(p[:,0], p[:,1], 'o')
hull = ConvexHull(p)
for simplex in hull.simplices:
    plt.plot(p[simplex, 0], p[simplex, 1], 'k-')

【讨论】:

    猜你喜欢
    • 2019-02-26
    • 2013-08-12
    • 2016-06-29
    • 2015-05-16
    • 2019-01-17
    • 2015-10-07
    • 2011-09-10
    • 2020-04-04
    • 2020-10-04
    相关资源
    最近更新 更多