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