一,什么是属性?
属性是存在于 一个网格。在 PyVista 中,我们同时使用点数据和单元数据,并且 允许轻松访问数据字典以保存属性数组 它们位于网格的所有点或所有单元上。
点数据
点数据是指值数组(标量、向量等),这些值 Live 在网格的每个点上。属性数组中的每个元素 对应于网格中的一个点。让我们创建一些点 数据。绘制时,点之间的值为 跨单元格进行插值。
import numpy as np # 导入 NumPy 库,用于处理数组和生成随机数
import pyvista as pv # 导入 PyVista 库,用于三维可视化
# 从 STL 文件读取网格数据
mesh = pv.read('hexbeam.stl')
# 设置相机位置,用于绘制时视角的选择
cpos = [(6.20, 3.00, 7.50), # 相机位置的坐标
(0.16, 0.13, 2.65), # 注意点的坐标 (即视角朝向的中心点)
(-0.28, 0.94, -0.21)] # 上向量坐标,控制相机的上方向
# 为每一个点的数据设置一个名为 'my point values' 的标量值
mesh.point_data['my point values'] = np.arange(mesh.n_points)
# 绘制网格,使用 ivalue 'my point values' 表示的标量值,并显示边缘线
mesh.plot(scalars='my point values', cpos=cpos, show_edges=True)
代码解释:
-
导入库:
numpy
用于数值运算和数组操作,这里主要用来生成值数组。pyvista
是一个用于三维可视化的库,可以方便地操作和展示三维数据。
-
读取网格文件:
- 使用
pv.read('hexbeam.stl')
从一个 STL 文件中读取三维网格数据。这种文件格式通常用于存储三维模型。
- 使用
-
设置相机位置:
cpos
是一个列表,包含三个点的三维坐标,定义了绘制图像时的相机位置、查看的目标和相机的上方向。具体包括:- 第一个点是相机的位置。
- 第二个点是相机关注的目标(视野中心点)。
- 第三个点定义了相机的“上方”方向,有助于用户更好地理解空间的方向。
-
设置点数据:
mesh.point_data['my point values']
给网格的每一个点分配一个标量数据,这里使用np.arange(mesh.n_points)
创建一个从 0 到网格点总数的