我的问题如下:我有一个三角表面,其中数组X,Y,Z
包含网格顶点的坐标,数组Triangles
包含三角形每个角的顶点的索引(即阵列的每一行都包含一个三元组,以顶点的形式定义了一个三角形。此外,我有一个数组Field
,其中包含网格每个顶点上的标量字段值。我希望在Python中绘制三角形网格,其中每个三角形根据其顶点的字段值进行着色。
如果为每个三角形分配单一颜色(请参阅here),我已经找到了解决此问题的方法。如果我想内插每个单个三角形表面上的字段值,以便对网格进行连续(甚至更平滑)着色,
我想使用Matplotlib的tri_api,因为它也可以在三角形网格上进行插值,但是我没有找到适合我需要的解决方案。 This demo接近,但限制在平面上,并插在矩形网格上。
当然,解决方案不必包含Matplotlib,它可以是任何其他Python库/工具箱。如果有任何建议,我将不胜感激!
答案 0 :(得分:0)
用3D绘图很困难,并且您可以使用其他软件工具,尤其是ParaView。不过,您首先必须将网格转换为ParaView可以使用的文件。为此,您可以例如使用meshio(我写过):
import numpy
import meshio
points = numpy.array([
[0.0, 0.0, 0.0],
[0.0, 1.0, 0.0],
[0.0, 0.0, 1.0],
])
cells = {
"triangle": numpy.array([
[0, 1, 2]
])
}
meshio.write_points_cells(
"foo.vtk",
points,
cells,
point_data=point_data,
)