当前位置: 首页 > news >正文

Python的3D可视化库【vedo】2-1 (plotter模块) 绘制器的使用

文章目录

  • 1 相关用语及其关系
  • 2 Plotter类的基本使用
  • 3 Plotter类具体的初始化设置
    • 3.1 全部初始化参数
    • 3.2 使用不同的axes


vedo是Python实现的一个用于辅助科学研究的3D可视化库。
vedo的plotter模块封装了绘制器类Plotter
Plotter实例可以用于显示3D图形对象、控制渲染器行为、操控相机、创建事件以及导出3D数据。几乎所有关于3D图形的操作,都是在Plotter渲染的窗口进行的。

vedo的applications模块提供了各种高级功能,其中的类全部继承自Plotter

参考:vedo官方文档


1 相关用语及其关系

  • 绘制器 plotter
    Plotter类的实例,控制绘制、渲染、事件等。
    绘制器实例是单例的,程序内部创建的实例都是同一个。
  • 渲染器 renderer
    渲染器是进行图形渲染的对象。
    它是Plotter实例的属性,plt.renderer访问当前的渲染器。Plotter实例可以有多个渲染器,通过plt.renderers访问渲染器列表。
  • 屏幕 screen
    电脑显示器的屏幕。
  • 窗口 window
    绘制器调用show()方法时,会弹出窗口,展示绘制的图形,用户可以使用鼠标键盘进行3D交互。
  • 窗格 grid
    绘制器拥有多个渲染器时,会把窗口分割为对应数量的窗格,每个窗格分配一个渲染器。
  • 场景 scene
    渲染器渲染的3D场景,包含3D物体、光效和各种标记。通过窗格展示,理论上是无限大的。
  • 相机 camera
    用户观看场景的视点,是用户和3D场景的相对位置和朝向。
    相机的位置和方向属性决定了3D场景渲染后投影到2D窗格(视口)的图像。

2 Plotter类的基本使用

# 创建Plotter实例
plt = vedo.Plotter()
# 弹出窗口,渲染3D图像
plt.show(interactive=True)

这里没有添加任何图形,因此显示空白窗口:
在这里插入图片描述


3 Plotter类具体的初始化设置

3.1 全部初始化参数

  • shape=(1, 1)
    (行, 列),表示多个渲染器窗格的排列方式。
    如果已指定参数Nshape参数就不可再指定。
  • N=None
    渲染器的数目,会将窗口分为若干个窗格,每个窗格分配一个渲染器。
    N不为None时,窗格会自动按照窗口大小确定合适的行数和列数。
  • pos=(0, 0)
    渲染窗口相对于屏幕左上角的坐标位置,单位为像素。
  • size="auto"
    渲染窗口的大小。填auto时,基于屏幕大小展示。
  • screensize="auto"
    显示器屏幕的物理大小。在有多个渲染器时,会用来计算每个窗格的大小。
  • title="vedo",窗口的标题。
  • bg="white"
    背景颜色,或背景图片的路径。
  • bg2=None
    向顶部渐变的背景颜色。
  • axes=None
    轴类别。可以代表不同类别轴的整数值。也可以填一个表示轴的字典。
  • sharecam=True
    默认为真,表示分格的各个渲染器统一使用一个相机。
    为假时每个渲染器会有独立的相机。如图,不同渲染器的相机可以朝向不同角度。
    不共用相机
  • resetcam=True
    按照可见的actors对象列表,自动设置相机的位置。
    相机会对焦到它们的中心点,并沿着视平面法线平移,使这些演员对象都出现在视野里。
    每个渲染器都有自己的actors列表,当前渲染器会以它自己的actors调整相机位置。
    sharecam=True时,所有的渲染器都使用第一个渲染器的相机。这可能会导致其它渲染器把图形显示在屏幕外,尤其是在该渲染器的actors对象中心点与首个渲染器的actors的中心点相距较远的时候。这时最好设置sharecam=False,每个渲染窗格独立对焦。
  • interactive=None
    为真时会在调用show()之后暂停,以进行3D交互。
  • offscreen=False
    为真时不显示渲染窗口。
  • qt_widget=None
    Qt-Widget窗口中进行渲染。需要使用PyQt5库的QVTKRenderWindowInteractor对象。
  • wx_widget=None
    wxPython定义的窗口中进行渲染。

3.2 使用不同的axes

axes表示轴类别,可以通过0-14的数值表示:

axes值轴类型说明
0默认情况,没有轴;
1绘制灰色的三面网格墙;
2从(0, 0, 0)开始的笛卡尔坐标系;
3从(0, 0, 0)开始的笛卡尔坐标系的正方向;
4在左下角显示一个小坐标轴,表示图形当前的方向和位置;
5在左下角显示一个方位立方体;
6标记边界框的8个角。
7在笛卡尔坐标系的每边绘制3D标尺;
8显示VTKCubeAxesActor对象;
9显示边界框的轮廓;
10绘制三个圆,表示最大边界框;
11在x-y平面显示巨型网格;缩放等级是8;
12显示一个极坐标轴;
13窗口底部显示一个普通的标尺。
14在右上角绘制一个相机方向控件;

除了上述值外,也可以指定表示轴参数的字典axes=dict()
addons模块的Axes方法中有详细的轴字典参数说明。

# 展示两个示例球体
s1 = vedo.Sphere(r=0.3, pos=(3, 3, 3))
s2 = vedo.Sphere(r=0.3, pos=(-3, -3, -3))
# 显示轴
plt = vedo.Plotter(axes=1)
plt.show(s1, s2)

14种轴如下图所示:
axes=0,1,2
axes=3,4,5
axes=6,7,8
axes=9,10,11
axes=12,13,14

axes=6时显示的框暂时存在BUG。


以上是plotter模块绘制器Plotter使用的基础。
Plotter类的方法较多,后续将把它们分组整理。

更多关于数据可视化的内容参考:Python数据可视化笔记

相关文章:

Python的3D可视化库【vedo】2-1 (plotter模块) 绘制器的使用

文章目录 1 相关用语及其关系2 Plotter类的基本使用3 Plotter类具体的初始化设置3.1 全部初始化参数3.2 使用不同的axes vedo是Python实现的一个用于辅助科学研究的3D可视化库。 vedo的plotter模块封装了绘制器类Plotter。 Plotter实例可以用于显示3D图形对象、控制渲染器行为、…...

6.1 初探MapReduce

MapReduce是一种分布式计算框架,用于处理大规模数据集。其核心思想是“分而治之”,通过Map阶段将任务分解为多个简单任务并行处理,然后在Reduce阶段汇总结果。MapReduce编程模型包括Map和Reduce两个阶段,数据来源和结果存储通常在…...

【数模学习笔记】模糊综合评价

声明:以下笔记中的图片均来自“数学建模学习交流”清风老师的课程ppt,仅用作学习交流使用 模糊综合评价 文章目录 模糊综合评价模糊数学经典集合和模糊集合的基本概念经典集合和特征函数模糊集合和隶属函数模糊集合的分类 隶属函数的确定方法方法一 模糊…...

【C语言】库函数常见的陷阱与缺陷(四):内存内容操作函数[1]--memcmp

目录 一、功能与用法 1.1. 功能 1.2. 场景用法 二、陷阱与缺陷 2.1. 比较范围限制问题 2.2. 数据类型兼容性隐患 2.3. 其它 三、安全使用建议 四、代码示例 在 C 语言编程的世界里,内存内容操作函数宛如精密的工具,肩负着操控内存数据的重任。它们能灵活地复制、移动…...

jmeter CLI Mode 传参实现动态设置用户数

一.需求 CLI 运行模式下每次运行想要传入不同的用户数,比如寻找瓶颈值的场景,需要运行多次设置不同的用户数。 二.解决思路 查看官方API Apache JMeter - Users Manual: Getting Started api CLI Mode 一节中提到可以使用如下参数做属性的替换&#…...

数据库和SQL的基本概念

目录 定义数据分类非结构化数据:半结构化数据 :​ 结构化数据 : SQL(Structured Query Language)概念分类 数据库管理概念理解 定义 数据库(Database)是按照数据结构来组织、存储和管理数据的建立在计算机存储设备上的仓库。 数据库是长期储存在计算机内、有组织的…...

CSS系列(9)-- Transform 变换详解

前端技术探索系列:CSS Transform 变换详解 🔄 致读者:探索 CSS 变换的魔力 👋 前端开发者们, 今天我们将深入探讨 CSS Transform,学习如何创建引人注目的 2D 和 3D 变换效果。 2D 变换基础 &#x1f68…...

一些浅显易懂的IP小定义

IP归属地(也叫IP地址,IP属地) 互联网协议地址,每个设备上的唯一的网络身份证明。用于确保网络数据能够精准传送到你的设备上。 基于IP数据云全球IP归属地解析,示例Python代码 curl -X POST https://route.showapi.co…...

C 语言动态爱心代码

C 语言动态爱心代码 代码 #include <stdio.h> #include <math.h> #include <windows.h> #include <tchar.h> float f(float x, float y, float z) {float a x * x 9.0f / 4.0f * y * y z * z - 1;return a * a * a - x * x * z * z * z - 9.0f / …...

【Figma_01】Figma软件初始与使用

Figma初识与学习准备 背景介绍软件使用1.1 切换主题1.2 官方社区 设计界面2.1 创建一个项目2.2 修改文件名2.3 四种模式2.4 新增界面2.5 图层2.6 工具栏2.7 属性栏section透明度和圆角改变多边形的边数渐变效果描边设置阴影等特效拖拽相同的图形 背景介绍 Ul设计:User Interfa…...

【Python篇】PyQt5 超详细教程——由入门到精通(序篇)

文章目录 PyQt5 超详细入门级教程前言序篇&#xff1a;1-3部分&#xff1a;PyQt5基础与常用控件第1部分&#xff1a;初识 PyQt5 和安装1.1 什么是 PyQt5&#xff1f;1.2 在 PyCharm 中安装 PyQt51.3 在 PyCharm 中编写第一个 PyQt5 应用程序1.4 代码详细解释1.5 在 PyCharm 中运…...

day2 数据结构 结构体的应用

思维导图 小练习&#xff1a; 定义一个数组&#xff0c;用来存放从终端输入的5个学生的信息【学生的信息包含学生的姓名、年纪、性别、成绩】 1>封装函数 录入5个学生信息 2>封装函数 显示学生信息 3>封装函数 删除第几个学生信息&#xff0c;删除后调用显示学…...

CSS 进阶教程:从定位到动画与布局

文章目录 &#x1f31f; CSS 进阶教程&#xff1a;从定位到动画与布局&#x1f31f; 目录&#x1f31f; 1. 定位**Static&#xff08;默认定位&#xff09;****Relative&#xff08;相对定位&#xff09;****Absolute&#xff08;绝对定位&#xff09;****Fixed&#xff08;固定…...

Nginx性能优化全方案:打造一个高效服务器

Nginx性能优化全方案&#xff1a;打造一个高效服务器 调整工作进程数和线程数调整工作进程数调整线程数 启用Gzip压缩安装Gzip模块配置Gzip压缩 配置缓存策略配置浏览器缓存时间配置代理服务器缓存时间 优化文件访问方式使用sendfile()函数发送文件数据启用sendfile_max_chunk和…...

详解Maven的setting配置文件中mirror和repository的区别

在Maven的setting中&#xff0c;我们常常会用到mirror和repository配置&#xff0c;其中mirror是镜像的意思&#xff0c;而repository则是仓库的意思&#xff0c;它们两者都可以改变maven下载项目以来jar包的地址。 仓库&#xff08;repository&#xff09; repository就是个…...

框架模块说明 #07 API加密

背景 在实际开发过程中&#xff0c;我们通常会涉及到数据加密的问题。本文重点探讨两个方面&#xff1a;一是外部接口调用时的数据加密&#xff0c;二是服务间调用的数据加密与解密。 对于外部接口调用&#xff0c;每个用户将拥有独立的动态 AES 加密密钥&#xff08;KEY&…...

安卓BLE蓝牙开发经验分享

注意点一&#xff1a;一开始必须申请权限&#xff0c;否则后面根本无法成功。 注意点二&#xff1a;BLE使用向某个特征写入来发送数据&#xff0c;写入一次默认长度是23字节&#xff0c;必须向蓝牙设备申请更大字节的写入才能发送更多字节。&#xff08;23字节是BLE通信的最小…...

后缀表达式有什么场景应用

后缀表达式&#xff08;Reverse Polish Notation, RPN&#xff09;在多个领域中有广泛的应用&#xff0c;主要由于其简洁性和易于计算机处理的特点。以下是一些主要的应用场景&#xff1a; ### 1. **编译器和解释器** 后缀表达式在编译器和解释器中用于表达式求值。由于后缀表…...

使用 Kubernetes 部署 Redis 主从及 Sentinel 高可用架构(未做共享存储版)

文章目录 使用 Kubernetes 部署 Redis 主从及 Sentinel 高可用架构Redis 主从架构部署 (1.yaml)Redis Sentinel 部署 (2.yaml)Sentinel 服务暴露 (3.yaml)部署步骤总结 使用 Kubernetes 部署 Redis 主从及 Sentinel 高可用架构 本文将详细介绍如何在 Kubernetes 中部署 Redis …...

AI开发 - 用GPT写一个GPT应用的真实案例

就在昨天&#xff0c;我的同事推荐给我了一个第三方的公共大模型API&#xff0c;这个API集合了国际上上几乎所有知名的大模型&#xff0c;只需要很少的费用&#xff0c;就可以接入到这些大模型中并使用它们。成本之低&#xff0c;令人乍舌&#xff01;包括我们现在无法试用的 G…...

微信小程序 - 手机震动

一、界面 <button type"primary" bindtap"shortVibrate">短震动</button> <button type"primary" bindtap"longVibrate">长震动</button> 二、js逻辑代码 注&#xff1a;文档 https://developers.weixin.qq…...

如何将联系人从 iPhone 转移到 Android

从 iPhone 换到 Android 手机时&#xff0c;你可能需要保留重要的数据&#xff0c;例如通讯录。好在&#xff0c;将通讯录从 iPhone 转移到 Android 手机非常简单&#xff0c;你可以从本文中学习 6 种可靠的方法&#xff0c;确保随时保持连接&#xff0c;不错过任何信息。 第 1…...

《基于Apache Flink的流处理》笔记

思维导图 1-3 章 4-7章 8-11 章 参考资料 源码&#xff1a; https://github.com/streaming-with-flink 博客 https://flink.apache.org/bloghttps://www.ververica.com/blog 聚会及会议 https://flink-forward.orghttps://www.meetup.com/topics/apache-flink https://n…...

ABAP设计模式之---“简单设计原则(Simple Design)”

“Simple Design”&#xff08;简单设计&#xff09;是软件开发中的一个重要理念&#xff0c;倡导以最简单的方式实现软件功能&#xff0c;以确保代码清晰易懂、易维护&#xff0c;并在项目需求变化时能够快速适应。 其核心目标是避免复杂和过度设计&#xff0c;遵循“让事情保…...

MySQL 知识小结(一)

一、my.cnf配置详解 我们知道安装MySQL有两种方式来安装咱们的MySQL数据库&#xff0c;分别是二进制安装编译数据库或者使用三方yum来进行安装,第三方yum的安装相对于二进制压缩包的安装更快捷&#xff0c;但是文件存放起来数据比较冗余&#xff0c;用二进制能够更好管理咱们M…...

区块链技术概述

区块链技术是一种去中心化、分布式账本技术&#xff0c;通过密码学、共识机制和智能合约等核心组件&#xff0c;实现数据不可篡改、透明可追溯的系统。 一、核心技术 1. 去中心化 特点&#xff1a;数据存储在网络中的多个节点&#xff08;计算机&#xff09;&#xff0c;而非…...

comfyui 工作流中 图生视频 如何增加视频的长度到5秒

comfyUI 工作流怎么可以生成更长的视频。除了硬件显存要求之外还有别的方法吗&#xff1f; 在ComfyUI中实现图生视频并延长到5秒&#xff0c;需要结合多个扩展和技巧。以下是完整解决方案&#xff1a; 核心工作流配置&#xff08;24fps下5秒120帧&#xff09; #mermaid-svg-yP…...

32单片机——基本定时器

STM32F103有众多的定时器&#xff0c;其中包括2个基本定时器&#xff08;TIM6和TIM7&#xff09;、4个通用定时器&#xff08;TIM2~TIM5&#xff09;、2个高级控制定时器&#xff08;TIM1和TIM8&#xff09;&#xff0c;这些定时器彼此完全独立&#xff0c;不共享任何资源 1、定…...

边缘计算网关提升水产养殖尾水处理的远程运维效率

一、项目背景 随着水产养殖行业的快速发展&#xff0c;养殖尾水的处理成为了一个亟待解决的环保问题。传统的尾水处理方式不仅效率低下&#xff0c;而且难以实现精准监控和管理。为了提升尾水处理的效果和效率&#xff0c;同时降低人力成本&#xff0c;某大型水产养殖企业决定…...

游戏开发中常见的战斗数值英文缩写对照表

游戏开发中常见的战斗数值英文缩写对照表 基础属性&#xff08;Basic Attributes&#xff09; 缩写英文全称中文释义常见使用场景HPHit Points / Health Points生命值角色生存状态MPMana Points / Magic Points魔法值技能释放资源SPStamina Points体力值动作消耗资源APAction…...