python vtk_Python 可视化基础——tvtk库的使用

一、tvtk库的安装

下载 VTK-7.1.1-cp36 TVTK -cp36m-win_amd64.whl

库的安装

“以管理员身份运行”cmd

在下载目录执行pip install VTK-7.1.1-cp36-cp36m-win_amd64.whl

二、建立tvtk库长方体数据源

>>> from tvtk.tools import tvtk_doc

>>> s=tvtk.CubeSource(x_length=1.0,y_length=2.0,z_length=3.0)

>>> print(s)

vtkCubeSource (0000000002B33880)

Debug: Off

Modified Time: 1358865

Reference Count: 2

Registered Events:

Registered Observers:

vtkObserver (000000000767B940)

Event: 33

EventName: ModifiedEvent

Command: 0000000007A5DC10

Priority: 0

Tag: 1

Executive: 0000000007CBE320

ErrorCode: No error

Information: 000000000765D6B0

AbortExecute: Off

Progress: 0

Progress Text: (None)

X Length: 1

Y Length: 2

Z Length: 3

Center: (0, 0, 0)

Output Points Precision: 0

三、tvtk库的使用方法

TVTK库中的类名去除了前缀vtk

 函数名按照Python的惯例,采用下划线连接单词

如AddItem->add_item

 VTK对象的方法在TVTK中用Trait属性替代

m.SetInputConnnection(c.GetOutputPort()) #VTK

m.input_connection(c.output_port) #TVTK

s = tvtk.CubeSource(traits)

s = tvtk.CubeSource(x_length=1.0, y_length=2.0,z_length=3.0)

· x_length: 立方体在X轴的长度

· y_length: 立方体在y轴的长度

· z_length: 立方体在z轴的长度

属性 说明

s.x_length 长方体对象在X轴方向的长度

s.y_length 长方体对象在y轴方向的长度

s.z_length 长方体对象在z轴方向的长度

s.center 长方体对象所在坐标系的原点

s. output_points_precision 长方体对象的精度

CubeSource对象的方法

VTK方法 Tvtk 说明

Set/GetXLength() x_length 设置/获取长方体对象在X轴方向的长度

Set/GetYLength() y_length 设置/获取长方体对象在Y轴方向的长度

Set/GetZLength() z_length 设置/获取长方体对象在Z轴方向的长度

Set/GetCenter() center 设置/获取长方体对象所在坐标系的原点

Tvtk库的基本三维对象

三维对象 说明

CubeSource 立方体三维对象数据源

ConeSource 圆锥三维对象数据源

CylinderSource 圆柱三维对象数据源

ArcSource 圆弧三维对象数据源

ArrowSource 箭头三维对象数据源

四、实例

代码如下

from tvtk.api import tvtk

# 创建一个长方体数据源,并且同时设置其长宽高

s = tvtk.CubeSource(x_length=1.0, y_length=2.0, z_length=3.0)

# 使用PolyDataMapper将数据转换为图形数据

m = tvtk.PolyDataMapper(input_connection=s.output_port)

# 创建一个Actor

a = tvtk.Actor(mapper=m)

# 创建一个Renderer,将Actor添加进去

r = tvtk.Renderer(background=(0, 0, 0))

r.add_actor(a)

# 创建一个RenderWindow(窗口),将Renderer添加进去

w = tvtk.RenderWindow(size=(300,300))

w.add_renderer(r)

# 创建一个RenderWindowInteractor(窗口的交互工具)

i = tvtk.RenderWindowInteractor(render_window=w)

# 开启交互

i.initialize()

i.start()

运行得到一个长方体

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()

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(0).widget(0)

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()

本笔记整理自北理黄天羽老师《科学可视化》课程,在此表示感谢。本笔记主要取自课程讲义,仅供交流学习,请勿转载,谢谢。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值