如何解决如何从 Python 中的 3D 点的 Delaunay 三角剖分生成四面体?
我需要对一组 3D 点进行 delaunay 三角剖分。我为它写了一个脚本(如下),但输出中似乎没有四面体。请给我一些意见/想法。我正在使用 python3。非常感谢。
from scipy.spatial import delaunay
import matplotlib.pyplot as plt
import numpy as np
points= np.array([[1,2,2],[1,3,6],[4,4],[5,2]])
tri= delaunay(points)
fig= plt.figure()
ax= fig.gca(projection= '3d')
ax.plot_trisurf(points[:,0],points[:,1],triangles= tri.simplices)
plt.plot(points[:,'+')
plt.show()
解决方法
四面体在 tri.simplices
成员中给出,该成员包含一个 n x 4
索引数组(n 是四面体的数量)。四面体作为一组四个索引给出,对应于 points
数组中四面体的四个点的索引。
例如以下代码将绘制第一个四面体的线框:
tr = tri.simplices[0] # indices of first tetrahedron
pts = points[tr,:] # pts is a 4x3 array of the tetrahedron coordinates
# plotting the six edges of the tetrahedron
for ij in [[0,1],[0,2],3],[1,[2,3]]:
ax.plot3D(pts[ij,0],pts[ij,2])
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。