vtk贴图python_Python+VTK教程-TVTK入门

在讲TVTK库前,先讲一下可视化的概念。

定义

科学计算可视化

分类:

可视化的方法

二维标量

三维标量数据场

矢量数据场

应用领域

1.TVTK库安装

Python下使用VTK的库。

TVTK库官网

至于课程中的安装步骤,就不用课程里面的了。我觉得还是用上一节我提到的anaconda里直接安装更为方便一些。

或者使用命令行安装

或者在这个网站下载

下载 whl 时候,需注意 python的版本号 和 自身电脑的位数

注意:需安装完 VTK 、numpy 、traits 、 mayavi、pyqt4 才能使用 VTVK

2.检验TVTK库是否安装成功

可以打开jupyter或者Spyder编译器,然后输入

from tvtk.tools import tvtk_doc

tvtk_doc.main()

这个时候你就可以打开tvtk文档,这个文档你可以查询到关于TVTK的任何需要的信息。

再利用TVTK库生成个长方体出来。

输入以下代码

from tvtk.api import tvtk

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

print(s)

3.创建一个基本的三维对象

刚刚用来测试tvtk安装是否成功时,用过一个创建三维对象的函数tvtk.CubeSource();

当调用时,各个变量的意义如下:

那什么是traits呢?

Traits英语意思是属性。traits库可以给python添加类型定义。更简单的说,trait就是tvtk的属性。

现在回到CubeSource函数,这个函数的输入参数如下:

以及CubeSource对象的属性

对象创建好后,也可以用.进行查看,例如

获得CubeSource对象的方法

Tvtk库的基本三维对象,当然还有很多

这里尝试创建一个圆锥。

输入以下代码

创建好对象后,可以查看对象属性

4.显示一个基本的三维对象

这里先给一个显示长方体的例子:

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

通过上面那段代码可以得到一个交互式的长方体图形。

解释一下上面那段代码。

首先,第一行是导入tvtk

第二行,就是前面讲过的创建一个长方体对象

接下来就是怎么去显示了

首先用PolyDataMapper将数据转换为图形数据,这里PolyDataMapper相当于是一个映射器,将数据映射为图像。输入为数据的输出。

接下来,创建一个actor,actor是一个实体,输入为上一步的m;

再创建一个渲染器,将actor加入其中, r = tvtk.Renderer(background=(0, 0, 0)),background的是背景。

然后把actor加入这个renderer里。r.add_actor(a)

然后我们添加一个窗口,把renderer放在这个窗口之中。设置好窗口的大小

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

w.add_renderer(r)

接着创建一个交互工具

i = tvtk.RenderWindowInteractor(render_window=w)

最后开启交互。

i.initialize()

i.start()

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值