Python Scipy 获取3D凸包的边界
我使用了 Scipy Delaunay
来计算一组点的三维凸包,现在我想要获取所有外部面的列表(由3个点定义的三角形),有没有人知道怎么获取这些信息?谢谢!
代码:
import scipy.spatial
import numpy as np
import csv
"""loading colors"""
colors = np.array([(XYZRGB(rank, name, X, Y, Z))
for rank, name, X, Y, Z in csv.reader(open('colorshort.csv'))])
"""doing geometry"""
tri = scipy.spatial.Delaunay(colors[:,[2,3,4]], furthest_site=False)
# Delaunay triangulation
indices = tri.simplices
# indices of vertices
vertices = colors[indices]
# the vertices for each tetrahedron
1 个回答
4
如果你查看一下 help(tri)
,你会看到一个关于 tri
的所有属性的列表。我觉得你要找的属性是 tri.convex_hull
,它会给出属于凸包的点的索引。所以要获取实际的顶点,你可以使用下面的代码:
colors[tri.convex_hull]