一:用IVTK根据观察管线

(一)引入该工具

from tvtk.tools import ivtk

可能需要安装pygments

pip3 install pygments

(二)使用ivtk显示立方体

from tvtk.api import tvtk
from tvtk.tools import ivtk
from pyface.api import GUI #可视化管线部分
s = tvtk.CubeSource(x_length=1.0,y_length=2.0,z_length=3.0)
m = tvtk.PolyDataMapper(input_connection=s.output_port)
#图形管线部分
a = tvtk.Actor(mapper=m) #创建一个实体 #创建一个带有Crust(Python Shell)的窗口
gui = GUI()
win = ivtk.IVTKWithCrustAndBrowser()
win.open()
win.scene.add_actor(a) #开启界面消息循环
gui.start_event_loop()

由于GUI存在一个Bug,使得子窗口脱离主窗口

修正错误

from tvtk.api import tvtk
from tvtk.tools import ivtk
from pyface.api import GUI #可视化管线部分
s = tvtk.CubeSource(x_length=1.0,y_length=2.0,z_length=3.0)
m = tvtk.PolyDataMapper(input_connection=s.output_port)
#图形管线部分
a = tvtk.Actor(mapper=m) #创建一个实体 #创建一个带有Crust(Python Shell)的窗口
gui = GUI()
win = ivtk.IVTKWithCrustAndBrowser()
win.open()
win.scene.add_actor(a) #修正错误
dialog = win.control.centralWidget().widget(0).widget(0)
from pyface.qt import QtCore
dialog.setWindowFlags(QtCore.Qt.WindowFlags(0x00000000
))
dialog.show()
#开启界面消息循环
gui.start_event_loop()

(三)为了提高程序的可读性,以及未来复用的方便,我们将上述代码封装函数

我们将创建IVTK窗口的功能和事件循环的功能封装在两个函数中
from tvtk.api import tvtk

def ivtk_scene(actors):
from tvtk.tools import ivtk # 创建一个带有Crust(Python Shell)的窗口
win = ivtk.IVTKWithCrustAndBrowser()
win.open()
win.scene.add_actor(actors) # 修正错误
dialog = win.control.centralWidget().widget().widget()
from pyface.qt import QtCore
dialog.setWindowFlags(QtCore.Qt.WindowFlags(0x00000000))
dialog.show() return win def event_loop():
from pyface.api import GUI gui = GUI()
# 开启界面消息循环
gui.start_event_loop() # 可视化管线部分
s = tvtk.CubeSource(x_length=1.0, y_length=2.0, z_length=3.0)
m = tvtk.PolyDataMapper(input_connection=s.output_port)
# 图形管线部分
a = tvtk.Actor(mapper=m) # 创建一个实体 win = ivtk_scene(a)
win.scene.isometric_view()
event_loop()

(四)进一步将函数转换为模块,方便复用

(五)界面操作

(1)交互界面获取信息

print(scene.renderer.actors[].mapper.input.points.to_array())  #输出当前场景下渲染器中实体的映射器图形的输入点

(2)查看照相机节点

(3)查看实体Actor

注意:在方向方面都是采用右手法则,上面照相机也是一样

(4)查看整个场景编辑器

添加或删除光源和修改属性

科学计算三维可视化---TVTK管线与数据加载(用IVTK根据观察管线)的更多相关文章

  1. 科学计算三维可视化---TVTK入门(数据加载)

    一:数据加载 大多数可视化应用的数据并非是在TVTK库中构建的,很多都是通过接口读取外部数据文件 (一)使用vtkSTLReader来读取外部文件 .stl 文件是在计算机图形应用系统中,用于表示三角 ...

  2. 科学计算三维可视化---Mlab基础(数据可视化)

    推文:科学计算三维可视化---TVTK库可视化实例 使用相关函数:科学计算三维可视化---Mlab基础(管线控制函数) 一:mlab.pipeline中标量数据可视化 通过持续实例,来感受mlab对数 ...

  3. 科学计算三维可视化---TVTK管线与数据加载(可视化管线和图像管线了解)

    一:TVTK的管线 使用管线技术将TVTK中各个对象穿连起来,几乎所有渲染引擎都会提到管线技术 在TVTK中,每个对象只需要实现相对简单的任务,整个管线则能根据用户的需求,实现复杂的数据可视化处理. ...

  4. 科学计算三维可视化---TVTK管线与数据加载(数据集)

    一:数据集 三维可视化的第一步是选用合适的数据结构来表示数据,TVTK提供了多种表示不同种类数据的数据集 (一)数据集--ImageData >>> from tvtk.api im ...

  5. 科学计算三维可视化---TVTK入门(安装与测试)

    推文:http://docs.huihoo.com/scipy/scipy-zh-cn/tvtk_intro.html 推文:http://code.enthought.com/pages/mayav ...

  6. 科学计算三维可视化---TVTK库可视化实例

    一:TVTK库可视化实例 Plot3D文件知识:PLOT3D 数据格式 PLOT3D文件分为网格文件(XYZ 文件), 空气动力学结果文件 (Q 文件)和通用结果文件(函数文件 + 函数名称文件).网 ...

  7. 科学计算三维可视化---TVTK入门(创建和显示三维对象)

    一:创建一个基本的三维对象 (一)长方体操作 traits:就是TVTK对象的属性 (1)对象属性操作 >>> from tvtk.api import tvtk >>& ...

  8. 科学计算三维可视化---Mlab基础(管线控制函数)

    科学计算三维可视化---TVTK管线与数据加载(可视化管线和图像管线了解) 科学计算三维可视化---Mayavi入门(Mayavi管线) Mlab管线控制函数的调用 Sources:数据源 Filte ...

  9. Python科学计算三维可视化(整理完结)

    中国MOOC<Pyhton计算计算三维可视化>总结 课程url:here ,教师:黄天宇,嵩天 下文的图片和问题,答案都是从eclipse和上完课后总结的,转载请声明. Python数据三 ...

随机推荐

  1. js实现把一个页面层数据传递到另一个页面

    由于之前面试,被问到过此问题,所以今天特意整理了一下.由于自己技术水平有限,若存在错误,欢迎提出批评. 本博客整理了两种方式从一个页面层向另一个页面层传递参数. 一. 通过cookie方式 1. 传递 ...

  2. sqlDataAdapter和SqlCommand的区别

    因为DataSet是离线的,所以SqlDataAdapter这个对象是连接DataSet和数据库的桥梁,所有对DataSet的操作(填充,更新等)都要通过他 ado.net数据访问有两种方式: 1.离 ...

  3. vim python和golang开发环境配置

    首先在-下新建目录.vim和配置文件.vimrc,.vimrc内容如下: syntax on set nocompatible filetype off set rtp+=~/.vim/bundle/ ...

  4. Android-TCP编程

    以下是PC端代码: package com.example.sxb.myapplication;import java.io.BufferedReader;import java.io.IOExcep ...

  5. TensorFlow问题“Attempting to use uninitialized value”

    1.出现的问题: 对已经保存好的模型,在进行重载并继续训练的过程中出现了以下问题: 2.解决办法: 在查找了相关资料后,了解到,该错误是指在从tfrecord中读取数据时一些参数未被初始化,如果直接r ...

  6. 09_Java面向对象_第9天(类、封装)_讲义

    今日内容介绍 1.面向对象思想 2.类与对象的关系 3.局部变量和成员变量的关系 4.封装思想 5.private,this关键字 6.随机点名器 01面向对象和面向过程的思想 A: 面向过程与面向对 ...

  7. ReentrantLock 和 Condition的使用

    ReentrantLock  ReentrantLock可以等同于synchronized使用. ReentrantLock 类实现了Lock ,它拥有与 synchronized 相同的并发性和内存 ...

  8. PAT 甲级 1113 Integer Set Partition

    https://pintia.cn/problem-sets/994805342720868352/problems/994805357258326016 Given a set of N (> ...

  9. [转帖]Nginx 的配置文件详解.

    nginx配置文件nginx.conf超详细讲解  https://www.cnblogs.com/liang-wei/p/5849771.html   #nginx进程,一般设置为和cpu核数一样w ...

  10. js & 快捷键 & vue bind bug

    js & 快捷键 & vue bind bug how to prevent addEventListener bind many times solution dataset &am ...