You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Mayavi中基于三角形属性而非顶点值生成三角网格颜色映射?

用Mayavi实现按三角形属性着色的方法

你可以通过直接操作Mayavi网格数据源的**单元数据(cell data)**来实现按每个三角形的属性着色,具体步骤如下:

  1. 先创建基础的三角网格(暂时无需指定顶点标量):
from mayavi import mlab as ML
import numpy as np

# 假设X,Y,Z是N个顶点的坐标数组,T是E*3的三角形索引数组
# face_values是E*1的数组,每个元素对应一个三角形的属性值
mesh = ML.triangular_mesh(X, Y, Z, T, opacity=0.9)
  1. 将三角形属性数组赋值给网格的单元标量数据:
# 把face_values设置为单元级标量(对应每个三角形)
mesh.mlab_source.dataset.cell_data.scalars = face_values
# 给标量数据命名(可选,方便颜色栏显示对应标题)
mesh.mlab_source.dataset.cell_data.scalars.name = "Triangle Attribute"
  1. 更新数据源并完成可视化:
# 让Mayavi同步更新数据源
mesh.mlab_source.update()
# 添加颜色栏,展示属性值与颜色的对应关系
ML.colorbar(title="Triangle Attribute")
# 其他可视化调整(如视角、背景等)...
ML.show()

关键说明

  • Mayavi中,三角形属于网格的单元(cell),对应的数据要放在cell_data.scalars中;而你之前用的scalars=Z是基于顶点的标量(point_data.scalars)。
  • 必须保证face_values的长度严格等于三角形的数量E,否则会出现数据不匹配的错误。

内容的提问来源于stack exchange,提问作者Tingchang Yin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 17:05:30