我有三角形来构造球面。我想用mayavi triangular_mesh函数绘制曲面。该函数具有“三角形”参数,它是列出每个三角形中的顶点的三重奏(或数组)列表。我知道顶点协调所有的三角形。但我不知道如何生成这个参数。
我还尝试使用matplotlib三角剖分函数(triangles = matplotlib.tri.Triangulation(longitudes, latitudes).triangles)生成“三角形”参数。然而,在一些表面的地方,三角形不正确地连接(如图1所示)。

图1.三角形的不正确连接
利用已知顶点坐标的三角形生成Mayavi triangular_mesh的“三角形”参数
数据格式
x, y和z是三角形的笛卡尔坐标。例如,(x[0], y[0], z[0]), (x[1], y[1], z[1])和(x[2], y[2], z[2])是三角形的顶点。下一个三角形具有(x[3], y[3], z[3]), (x[4], y[4], z[4])和(x[5], y[5], z[5])顶点坐标。
发布于 2019-12-17 14:30:22
你只需要用指数把它放在一起。看看triangles的形状。在x、y和z上,每个三角形有三个指标。
import numpy as np
import mayavi.mlab as mlab
x = np.random.rand(30)
y = np.random.rand(30)
z = np.random.rand(30)
s = np.random.rand(30)
triangles = np.random.randint(0, 30, size=(10, 3))
print(triangles)
mlab.triangular_mesh(x, y, z, triangles, scalars=s)
mlab.orientation_axes()
mlab.show()https://stackoverflow.com/questions/59374188
复制相似问题