from scipy import spatial import numpy as np import matplotlib.pyplot as plt np.random.seed(42) points2d=np.random.rand(10,2)#一组二维平面上的随机点 #convexHull计算包含N维空间中点的集合的最小凸包 ch2d=spatial.ConvexHull(points2d) #绘图 poly=plt.Polygon(points2d[ch2d.vertices],fill=None,lw=2,color='r',alpha=0.5) ax=plt.subplot(aspect='equal') plt.plot(points2d[:,0],points2d[:,1],'go') for i ,pos in enumerate(points2d): plt.text(pos[0],pos[1],str(i),color='blue') ax.add_artist(poly) plt.show()
ConvexHull.simplices是凸包每条边线的两个顶点在二维平面上的下标
ConvexHull.vertices是凸多边形的每个顶点在二维平面上的下标
文章来源: 计算二维空间中点的集合的最小凸包