点是网格的顶点,也称为底层结构的笛卡尔坐标。所有 PyVista 数据集(网格)都有点,有时,您可以拥有一个仅包含点的网格,例如点云。
例如,您可以使用 pyvista.PolyData 类创建点云网格,该类专为具有 1D 和 2D 单元类型(我们很快就会介绍什么是单元)的网格构建。
让我们从点云开始;这是一种仅具有顶点的网格类型。您可以通过定义笛卡尔坐标的 2D 数组来创建它,如下所示:
code.python
# 必须在此处有这个,因为我们的全局后端可能不是静态的
import pyvista as pv
pv.set_plot_theme('document')
pv.set_jupyter_backend('static')
pv.global_theme.window_size = [600, 400]
pv.global_theme.axes.show = False
pv.global_theme.anti_aliasing = 'fxaa'
pv.global_theme.show_scalar_bar = False
import numpy as np
import pyvista as pv
rng = np.random.default_rng(seed=0)
points = rng.random((100, 3))
mesh = pv.PolyData(points)
mesh.plot(point_size=10, style='points')
\[\]
但重要的是要注意,大多数网格在点之间具有某种连接性,例如这个网格化网格:
code.python
from pyvista import examples
mesh = examples.load_hexbeam()
cpos = pv.CameraPosition(position=(6.20, 3.00, 7.50),
focal_point=(0.16, 0.13, 2.65),
viewup=(-0.28, 0.94, -0.21))
pl = pv.Plotter()
pl.add_mesh(mesh, show_edges=True, color='white')
pl.add_points(mesh.points, color='red', point_size=20)
pl.camera_position = cpos
pl.show()
\[\]
或这个三角化表面:
code.python
mesh = examples.download_bunny_coarse()
pl = pv.Plotter()
pl.add_mesh(mesh, show_edges=True, color='white')
pl.add_points(mesh.points, color='red', point_size=2)
pl.camera_position = pv.CameraPosition(
position=(0.02, 0.30, 0.73),
focal_point=(0.02, 0.03, -0.022),
viewup=(-0.03, 0.94, -0.34)
)
pl.show()
\[\]