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