VV TT KK 用用 户户 手手 册册   
  
 
 
翻 译 整 理 :   陈 恒  
 
 
 
 
甘肃省科学院自动化研究所 
 
 
 
 
 
 
 
 
 
 
VTK 用户手册              
文档控制 
文档控制
文档控制文档控制
变更记录 
日期 
20090408 
20090408 
 
 
作者 
陈恒 
陈恒陈恒陈恒陈恒 
 
 
 
审        核(此处必须手签) 
 
 
 
1.0 
 
版本 
变更说明 
初版初版初版初版 
发布发布发布发布 
 
 
审核人 
单位/职务 
日期 
 
 
 
 
 
 
 
 
 
批        准(此处必须手签) 
日期 
 
 
 
批准人 
 
 
 
 
 
 
 
 
 
 
单位/职务 
 
安全控制 
 
归        档 
 
密级说明 
 
传阅范围 
实验室内部 
实验室内部
实验室内部
实验室内部
归档日期 
20090410 
归档人 
陈恒陈恒陈恒陈恒 
修改范围 
档案管理员 
 
 
                                                                                                                              第 i  页 
VTK 用户手册              
目目目目        录录录录 
1  系统概述
系统概述..........................................................................................................................................1 
系统概述
系统概述
1.1  系统架构 .................................................................................................................................1 
1.1.1  图形模型.........................................................................................................................2 
1.1.2  可视化模型.....................................................................................................................3 
1.2  创建应用程序 .........................................................................................................................8 
2  VTK 使用基础
使用基础..............................................................................................................................20 
使用基础
使用基础
2.1  创建一个简单的示例 ...........................................................................................................20 
2.2  使用 VTK 交互功能 .............................................................................................................22 
2.3  过滤器 ...................................................................................................................................24 
2.4  控制相机 ...............................................................................................................................25 
2.4.1  创建相机.......................................................................................................................26 
2.4.2  简单的操作方法...........................................................................................................26 
2.4.3  控制观察方向...............................................................................................................27 
2.4.4  透视及正交投影...........................................................................................................27 
2.5  控制光源 ...............................................................................................................................27 
2.6  控制场景中的物体(3D PROPS)........................................................................................28 
2.6.1  指定物体的空间位置...................................................................................................28 
2.6.2  Actros.................................................................................................................................29 
2.6.3  物体的层次细节...........................................................................................................30 
2.6.4  组装...............................................................................................................................30 
2.6.5  使用纹理.......................................................................................................................31 
2.6.6  拾取...............................................................................................................................33 
VTK 中的坐标系统 ..............................................................................................................35 
2.7 
2.8 
VTKACTOR2D ........................................................................................................................36 
2.9  注释 .......................................................................................................................................36 
2.9.1  2D Annotation....................................................................................................................36 
2.9.2  3D Annotation and vtkFollower ........................................................................................38 
2.10  特定绘图 ...............................................................................................................................38 
2.10.1  颜色图例.......................................................................................................................39 
2.10.2  绘制平面图表...............................................................................................................39 
2.10.3  显示物体的边界尺寸...................................................................................................40 
2.10.4  标识属性数据...............................................................................................................42 
2.11  数据变换 ...............................................................................................................................43 
3  可视化技术
可视化技术....................................................................................................................................44 
可视化技术
可视化技术
3.1  可视化 VTKDATASET 类数据 ................................................................................................44 
3.1.1  颜色映射.......................................................................................................................46 
3.1.2  轮廓提取.......................................................................................................................49 
3.1.3  符号化...........................................................................................................................51 
3.1.4  流线技术.......................................................................................................................53 
3.1.5  流面...............................................................................................................................57 
                                                                                                                              第 ii  页 
VTK 用户手册              
3.1.6  切割...............................................................................................................................59 
3.1.7  数据合并.......................................................................................................................61 
3.1.8  附加数据(Appending Data).....................................................................................62 
3.1.9  探查(Probing) ...............................................................................................................62 
3.1.10  为等值面分级着色.......................................................................................................65 
3.1.11  提取单元数据的子集...................................................................................................67 
3.1.12  提取单元作为多边形数据(vtkPolyData).....................................................................69 
3.2  可视化多边形数据 ...............................................................................................................72 
3.2.1  手动创建vtkPolyData ..................................................................................................72 
3.2.2  生成表面法线...............................................................................................................75 
3.2.3  多边形消减技术...........................................................................................................76 
3.2.4  平滑网格  Smooth Mesh ...............................................................................................79 
3.2.5  裁减数据.......................................................................................................................80 
3.2.6  创建纹理坐标...............................................................................................................83 
3.3  可视化结构网格数据集 .......................................................................................................85 
3.3.1  手动创建结构化网格数据集.......................................................................................85 
3.3.2  提取计算平面...............................................................................................................87 
3.3.3  对结构化网格数据二次采样.......................................................................................89 
3.4  可视化线性网格数据 ...........................................................................................................90 
3.4.1  手动创建线性网格数据...............................................................................................90 
3.4.2  提取计算平面...............................................................................................................91 
3.5  可视化非结构网格数据 .......................................................................................................92 
3.5.1  手动创建非结构化网格数据.......................................................................................92 
3.5.2  提取部分网格数据.......................................................................................................94 
3.5.3  对  vtkUnstructuredGrid 提取轮廓值...........................................................................96 
4  可视化图像及三维体数据
可视化图像及三维体数据............................................................................................................96 
可视化图像及三维体数据
可视化图像及三维体数据
4.1 
VTKSTRUCTUREDPOINTS 数据的发展历史 ...........................................................................97 
4.2  手动创建 VTKIMAGEDATA 数据............................................................................................98 
4.3  图像数据的二次采样 ...........................................................................................................99 
4.4  二维图像的三维显示 .........................................................................................................102 
4.5  体绘制 .................................................................................................................................103 
4.5.1  一个简单的例子.........................................................................................................104 
4.5.2  为什么有多种体绘制技术.........................................................................................106 
4.5.3  创建  vtkVolume 类......................................................................................................107 
4.5.4  使用vtkPiecewiseFunction 类....................................................................................107 
4.5.5  使用vtkColorTransferFunction 类.............................................................................109 
4.5.6  使用vtkVolumeProperty 类设定透明度和颜色值.....................................................109 
4.5.7  使用vtkVolumeProperty  控制阴影............................................................................ 110 
4.5.8  创建vtkVolumeMapper 映射器.................................................................................. 112 
4.5.9  切割体数据................................................................................................................. 113 
4.5.10  剪取体数据................................................................................................................. 114 
4.5.11  用射线投射法进行体绘制......................................................................................... 115 
4.5.12  二维纹理映射法体绘制............................................................................................. 117 
                                                                                                                              第 iii  页 
VTK 用户手册              
5  VTK 数据接口对象
数据接口对象.................................................................................................................... 117 
数据接口对象
数据接口对象
5.1  数据数组 ............................................................................................................................. 118 
5.2  数据集对象 .........................................................................................................................121 
5.3 
VTKDATASET  数据接口 ......................................................................................................122 
VTKIMAGEDATA  类的数据接口..........................................................................................123 
5.4 
VTKPOINTSET 的数据接口 ..................................................................................................124 
5.5 
5.6 
VTKPOLYDATA 的数据接口.................................................................................................125 
VTKCELL 的数据接口..........................................................................................................127 
5.7 
6  建立模型
建立模型......................................................................................................................................127 
建立模型
建立模型
6.1  隐模型 .................................................................................................................................127 
6.1.1  定义隐函数.................................................................................................................127 
6.1.2  对隐函数采样.............................................................................................................129 
6.2  挤压 .....................................................................................................................................132 
6.3  表面重构 .............................................................................................................................133 
6.3.1  Delaunay 三角网.............................................................................................................133 
6.3.2  高斯抛雪球.................................................................................................................139 
6.3.3  杂乱点集构建表面.....................................................................................................141 
7  与视窗系统交互
与视窗系统交互..........................................................................................................................142 
与视窗系统交互
与视窗系统交互
7.1 
VTKRENDERWINDOW 交互类型 ..........................................................................................142 
7.2  交互方针 .............................................................................................................................143 
7.3  在 WINDOW 系统/VC++中使用 VTK 进行交互................................................................144 
8  VTK 对象说明
对象说明............................................................................................................................144 
对象说明
对象说明
8.1  对象结构图 .........................................................................................................................144 
8.1.1  基础对象.....................................................................................................................145 
8.1.2  单元对象.....................................................................................................................145 
8.1.3  数据集对象.................................................................................................................146 
8.1.4  可视化流水线对象.....................................................................................................146 
8.1.5  源对象.........................................................................................................................146 
8.1.6  过滤器.........................................................................................................................147 
8.1.7  映射器.........................................................................................................................148 
8.1.8  图形对象.....................................................................................................................149 
8.1.9  体绘制.........................................................................................................................150 
8.1.10  图像处理对象.............................................................................................................151 
8.1.11 
OpenGL 绘制对象......................................................................................................152 
8.1.12  拾取对象.....................................................................................................................153 
8.1.13  变换对象层次图.........................................................................................................153 
8.2  过滤器 .................................................................................................................................154 
8.2.1  源对象.........................................................................................................................154 
8.2.2  图像过滤器.................................................................................................................155 
8.2.3  可视化过滤器.............................................................................................................158 
8.2.4  映射器对象.................................................................................................................162 
8.2.5  角色对象.....................................................................................................................163 
                                                                                                                              第 iv  页 
VTK 用户手册              
9  可视化流水线
可视化流水线..............................................................................................................................164 
可视化流水线
可视化流水线
9.1  概述 .....................................................................................................................................164 
9.1.1  数据可视化示例.........................................................................................................164 
9.1.2  功能模型.....................................................................................................................165 
9.1.3  可视化模型.................................................................................................................166 
9.1.4  对象模型.....................................................................................................................166 
9.2  可视化流水线 .....................................................................................................................166 
9.2.1  数据对象.....................................................................................................................166 
9.2.2  过程对象.....................................................................................................................166 
9.3  流水线拓扑结构 .................................................................................................................167 
9.3.1  流水线的连接.............................................................................................................167 
9.3.2  循环机制.....................................................................................................................168 
9.4  流水线执行 .........................................................................................................................168 
9.5  数据接口 .............................................................................................................................169 
9.6  综合应用 .............................................................................................................................170 
9.6.1  隐含控制执行.............................................................................................................170 
9.6.2  多输入输出.................................................................................................................171 
9.7  可视化流水线示例 .............................................................................................................172 
9.7.1  简单球体.....................................................................................................................172 
9.7.2  弯曲球体.....................................................................................................................173 
9.7.3  符号化处理.................................................................................................................174 
9.7.4  隐藏球体.....................................................................................................................175 
10  基本数据表达
基本数据表达 .........................................................................................................................177 
基本数据表达
基本数据表达
10.1  可视化数据的特点 .............................................................................................................177 
10.2  数据对象 .............................................................................................................................177 
10.3  数据集 .................................................................................................................................178 
10.3.1  单元.............................................................................................................................178 
10.3.2  属性数据.....................................................................................................................183 
10.4  数据集可视化 .....................................................................................................................186 
10.4.1  数据集类型.................................................................................................................186 
10.4.2  数据可视化方法.........................................................................................................189 
11  功能算法
功能算法 .................................................................................................................................194 
功能算法
功能算法
11.1  概述 .....................................................................................................................................194 
11.2  标量算法 .............................................................................................................................195 
11.2.1  颜色映射.....................................................................................................................195 
11.2.2  提取轮廓.....................................................................................................................196 
11.2.3  标量数据的确定.........................................................................................................197 
11.3  矢量算法 .............................................................................................................................197 
11.3.1  方向线和方向符号.....................................................................................................198 
11.3.2  变形.............................................................................................................................198 
11.3.3  位移绘制.....................................................................................................................199 
11.3.4  时间动画.....................................................................................................................200 
                                                                                                                              第 v  页 
VTK 用户手册              
11.3.5  流线.............................................................................................................................200 
11.4  模型算法 .............................................................................................................................201 
11.4.1  源对象.........................................................................................................................201 
11.4.2  隐函数.........................................................................................................................202 
11.4.3  隐式建模.....................................................................................................................203 
11.4.4  符号化.........................................................................................................................203 
11.4.5  剪切.............................................................................................................................204 
11.5  综合应用 .............................................................................................................................204 
11.5.1  过程对象设计.............................................................................................................204 
11.5.2  颜色映射.....................................................................................................................206 
11.5.3  隐函数.........................................................................................................................207 
11.5.4  提取轮廓.....................................................................................................................207 
11.5.5  剪切.............................................................................................................................208 
11.5.6  符号化.........................................................................................................................208 
11.5.7  流线.............................................................................................................................208 
11.5.8  抽象过滤器.................................................................................................................209 
                                                                                                                              第 vi  页 
VTK 用户手册              
 
1  系统概述 
本章的主要目的对 VTK 系统进行概括性的介绍,并且提供了一些基本的信息,让用户能
用各种开发语言(C++、TCL、Java、Python)创建应用程序,在本章开始的时候,主要介绍
VTK 系统的基本概念和对象模型,在本章的最后,用一些示例程序说明如何用 VTK 构建应用
系统。 
1.11.11.11.1  系统架构
系统架构    
系统架构
系统架构
VTK 系统主要由 C++类库、解释包装层(对 C++类库进行包装,便于 TCL、Java 等语言
使用)两个基本子系统构成,见图  3-1。 
图 1-1  VTK 组成 
 
采用这种架构的优势是我们能使用 C++语言建立高效的算法,用其他的脚本语言(如
TCL、Python)可以进行快速的开发,当然,如果精通 C++,也可以用 C++语言建立应用程
序。 
VTK 是一个基于面向对象的系统,提高 VTK 开发效率的关键因素是建立一个好的、易
于理解的、优化的对象模型,我们根据对象模型,很容易把各种对象组合起来,构建应用程
序,在本手册中我们尽量提供一些对用户有帮助的示例程序,在示例程序中介绍如何应用对
象构建可视化程序,最好的办法是用户可以通过示例代码或网站获取更多的 VTK 对象功能
描述信息。 
在本章的剩下部分,介绍构成 VTK 系统的两种对象模型:图形模型和可视化模型,这
部分的内容相对来说,是比较高级的内容,建议你在看这部分内容时,多看示例程序的代码。    
                                                                                                                              第 1  页