[PyVista] 介绍

news/2024/9/19 9:16:33 标签: 3d模型, Pyvista

一,介绍

PyVista是一个用于3D可视化和网格处理的Python库,它提供了一种简单而强大的方式来创建、渲染和分析复杂的三维数据集和网格。PyVista建立在VTK(Visualization Toolkit)和NumPy之上,为用户提供了许多方便的工具和功能,使其在处理和可视化大型数据集时变得更加容易和高效。

二,PyVista的主要功能包括:

  1. 三维数据可视化:PyVista支持各种各样的可视化效果,包括绘制网格、体绘制、等值面绘制、矢量场绘制等。用户可以轻松地创建各种类型的可视化效果,以便更好地理解和分析数据。

  2. 网格处理:PyVista提供了许多功能强大的网格处理工具,例如网格滤波、剖分、重采样等。这些工具可以帮助用户对网格进行各种操作,使其更加适合特定的需求。

  3. 与其他Python库的集成:PyVista与许多其他Python库兼容,包括pandas、scipy、scikit-learn等,使用户可以轻松地将PyVista与这些库结合使用,从而更好地处理和分析数据。

  4. 交互式可视化:PyVista支持交互式可视化,用户可以在图形界面中旋转、缩放、平移数据集,以便更好地查看数据。此外,PyVista还支持在Jupyter Notebook中进行交互式可视化,使用户可以直接在Notebook中查看和操作数据。

总的来说,PyVista是一个功能强大而灵活的Python库,为用户提供了丰富的工具和功能,使其能够更好地处理和可视化各种类型的三维数据。通过PyVista,用户可以快速、简单地创建高质量的三维可视化效果,从而更好地理解和分析数据。PyVista的使用范围非常广泛,包括地质学、生物医学、工程学等领域,为用户提供了一个强大的工具,帮助他们更好地处理

三,预告示例代码

import pyvista as pv  # 导入PyVista库

# 读取STL文件并创建网格对象
mesh = pv.read('bun_zipper_res4.STL')

# 默认绘制网格
mesh.plot()

# 设置相机位置
cpos = [(0.036, 0.367, 0.884), (0.024, 0.033, -0.022), (-0.303, 0.895, -0.325)]

# 创建Plotter对象,并以点形式绘制网格
pl = pv.Plotter()
pl.add_mesh(mesh, style='points', color='magenta', render_points_as_spheres=True, point_size=10)
pl.show(cpos=cpos)

# 创建Plotter对象,并显示网格边缘
pl = pv.Plotter()
pl.add_mesh(mesh, show_edges=True)
pl.show(cpos=cpos)

# 创建Plotter对象,显示网格边缘,并定制点的颜色和大小
pl = pv.Plotter()
pl.add_mesh(
    mesh,
    show_edges=True,
    vertex_color='magenta',
    render_points_as_spheres=True,
    point_size=10,
    show_vertices=True,
)
pl.show(cpos=cpos)

# 提取网格表面的点
surf_points = mesh.extract_surface().points

# 创建Plotter对象,显示网格边缘和表面点,并按第二列的值对点进行着色
pl = pv.Plotter()
pl.add_mesh(mesh, show_edges=True)
pl.add_points(
    surf_points,
    color='magenta',
    render_points_as_spheres=True,
    point_size=10,
    scalars=surf_points[:, 1],
    lighting=False,
    show_scalar_bar=False,
)
pl.show(cpos=cpos)

 运行结果;

 

 

 

 

四,为什么选择 PyVista? 

        VTK 是一个出色的可视化工具包,并且具有 Python 绑定 应该能够将 C++ 的速度与快速原型设计相结合 的 Python 的。然而,尽管有这些 VTK 代码,用 Python 编程 通常看起来与 C++ 对应项相同。本模块旨在 简化网格创建和绘图,而不会丢失功能。

PyVista 数据模型和 API 允许您快速加载网格和 处理大部分设置绘图的“繁重工作”,连接 类和管道,以及清理绘图窗口。它这样做 通过向 VTK 的类公开一个简化但实用的接口。

在 中,PyVista 会自动确定正确的 文件读取器,并返回一个 DataSet 对象。 此 dataset 对象包含类可用的所有方法(包括方法),允许您立即生成 网格。垃圾回收会自动处理,并且 渲染器在用户关闭绘图窗口后被清理。

同时,可以生成各种 PyVista 对象 直接从 NumPy 数组中获取。例如,下面我们生成一个向量 箭头字段使用 :

import pyvista
import numpy as np

# 创建网格
# Make a grid
x, y, z = np.meshgrid(np.linspace(-5, 5, 20),
                      np.linspace(-5, 5, 20),
                      np.linspace(-5, 5, 5),
                      indexing='ij')

points = np.empty((x.size, 3))
points[:, 0] = x.ravel('F')
points[:, 1] = y.ravel('F')
points[:, 2] = z.ravel('F')

# 计算矢量场的方向
direction = np.sin(points)**3

# 使用绘图类进行绘图
pl = pyvista.Plotter()
pl.add_arrows(points, direction, 0.5)
pl.show()

运行结果:

 


http://www.niftyadmin.cn/n/5665326.html

相关文章

Linux 使用 tar 命令

1 使用 gzip 压缩,将 dir 目录压缩 tar -zcvf archive.tar.gz dir/ 2 解压 tar.gz 文件 tar -zxvf archive.tar.gz 3 解压 tar.gz 文件,到指定 dir 目录 tar -zxvf archive.tar.gz -C dir 参数说明: -z 支持gzip解压文件 -x 从压缩的…

第五部分:2---信号的介绍、产生、处理

目录 信号的概念: 信号表的继承: 信号的分类与编号: 特殊的信号: 信号的产生: 1.键盘输入: 2.系统调用: 3.异常或硬件错误: 4.总结: 信号的处理: …

探索物联网 (IoT):从概念到应用

探索物联网 (IoT):从概念到应用 1. 引言 物联网(Internet of Things, IoT)是当今技术领域中最具潜力的发展趋势之一。通过将物理设备、传感器、软件和网络连接在一起,物联网能够收集和交换数据,创造一个互联的智能系…

球类目标检测系统源码分享

球类目标检测检测系统源码分享 [一条龙教学YOLOV8标注好的数据集一键训练_70全套改进创新点发刊_Web前端展示] 1.研究背景与意义 项目参考AAAI Association for the Advancement of Artificial Intelligence 项目来源AACV Association for the Advancement of Computer Vis…

Photoshop使用方法大全

0、快捷键 1)Alt Delete:填充前景色 2)Ctrl D:取消选区 3)Ctrl T:自由变换,等比缩放、旋转的效果 4)Ctrl R:显示标尺 5)Ctrl J:复制一个…

spriboot+mybatis-plus[3.5.16]+mybatis-plus-core[3.5.7]实现批量插入

引入包 <dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-core</artifactId><version>3.5.7</version><exclusions><exclusion><groupId>org.mybatis</groupId><artifactId>my…

结合板载驱动以及考虑全志 ARM 开发板有温度传感器和显示屏等硬件设备开发示例

结合板载驱动以及考虑全志 ARM 开发板的一些可能的特殊调用情况。假设开发板上有温度传感器和显示屏等硬件设备&#xff0c;并且有对应的板载驱动可以访问这些硬件&#xff0c;以下是开发示例 一、硬件场景描述 全志 ARM 开发板上有温度传感器、显示屏以及其他一些外设。通过…

CentOS中使用DockerCompose方式部署带postgis的postgresql(附kartoza/docker-postgis镜像下载)

场景 CentOS中使用Docker部署带postgis的postgresql&#xff1a; CentOS中使用Docker部署带postgis的postgresql_centos postgis插件在容器中如何安装-CSDN博客 上面使用Docker搜索和拉取kartoza/postgis时并没有任何限制。 当下如果不能科学上网时&#xff0c;大部分镜像源…