logo资料库

VTK User's Guide(中文完整版).doc

第1页 / 共258页
第2页 / 共258页
第3页 / 共258页
第4页 / 共258页
第5页 / 共258页
第6页 / 共258页
第7页 / 共258页
第8页 / 共258页
资料共258页,剩余部分请下载后查看
VTK用户指南
2.1 概述-------------------------------------
2.2 安装VTK到Windows9x/NT/ME/2000/XP----------
2.3 安装VTK到Unix操作系统
3.1 系统设计-----------------------------------
3.2 创建一个应用---------------------------------
3.3 在两种语言间转换
4.1 创建1个简单的模型------------------------------
4.2 使用VTK交互器--------------------------------------
4.3 滤波数据-----------------------------------
4.4 控制相机-----------------------------------
4.5 控制光线-----------------------------------
4.6 控制3D道具---------------------------------
4.7 作用纹理-----------------------------------
4.8 拾取-------------------------------------
4.9 vtk坐标和坐标系-----------------------------
4.10 控制vtk演员2D-----------------------------
4.11 注释------------------------------------
4.12 特殊绘图类---------------------------------
4.13 变换数据----------------------------------
5.1 可视化VTK数据集vtkDataSet(和子类) --------------
5.2 可视化多边形数据-------------------------------
5.3 可视化结构网格--------------------------------
5.4 可视化直线网格--------------------------------
5.5 可视化非结构网格-------------------------------
6.1 VTK结构化点的历史表示---------------------------
6.2 手工产生VTK图像数据----------------------------
6.4 基于尺度值的弯曲-------------------------------
6.6 图像源------------------------------------
6.7 图像处理-----------------------------------
6.8 体绘制------------------------------------
7.1 隐模型------------------------------------
7.2 挤压-------------------------------------
7.3 构建表面-----------------------------------
8.1 读入器-------------------------------------
8.2 写入器-------------------------------------
8.3 输入者-------------------------------------
8.4 输出者-------------------------------------
8.6 产生动画(使用样条) -----------------------------
9.1 编码补偿------------------------------------
9.2 标准方法: 创建和消除对象---------------------------
9.3 拷贝对象和受保护的方法-----------------------------
9.5 对象工厂------------------------------------
10.1 执行过程-----------------------------------
10.2 使用流------------------------------------
11.1 数据组------------------------------------
11.2 数据集------------------------------------
11.4 VTK图像数据接口------------------------------
11.5 VTK点集接口--------------------------------
11.6 VTK结构化网格接口-----------------------------
11.7 VTK线性网格接口------------------------------
11.8 VTK多边形数据接口-----------------------------
11.9 VTK非结构化网格接口----------------------------
11.10 单元格接口(VTK单元格子类) ----------------------
11.11 其他接口----------------------------------------
11.12 现场和属性数据接口-----------------------------
12.1 概述-------------------------------------
12.2 如何写一个绘图过滤器-----------------------------
12.3 如何写一个图像过滤器-----------------------------
13.1 绘制窗口交互风格-------------------------------
13.3 X Window, Xt, and Motif----------------
13.5 Tcl/Tk---------------------------------
14.1 对象图表-----------------------------------
14.2 过滤器总结----------------------------------
14.3 VTK文件格式--------------------------------
15.1 源代码
15.2 例子代码
15.4 数据
15.5 文档
1.1 结构
1.2 如何使用VTK
1.3 附加资源
2.1 概述
2.2 安装VTK到Windows9x/NT/ME/2000/XP
3.1 系统设计
3.2 创建一个应用
Tcl
Microsoft Visual C++
4.2使用VTK Interactors
Iteractor风格
4.4相机控制
4.6控制3D 道具
Actors
4.7使用纹理
4.8采集
4.9vtkCoordinate和Coordinate系统
4.10控制vtkActor2D
4.11注释
2D注释
3D注释和vtkFollower
X-Y绘图
Bounding盒子轴(vtkCubeAxesActor2D)
5.1可视化vtkDataSet(和子类)
Decimation
Clip数据
5.3显示结构化的栅格
5.4显示矩形栅格
6.1vtkStructuredPoints的历史
6.2手动地创建vtkImageData
6.3子采样图象数据
6.4根据标量值弯曲
6.5图象显示
6.6图象源
ImageCanvasSource2D
ImageEllipsoidSource
ImageGaussianSource
ImageGridSource
ImageNoiseSource
ImageSinusoidSource
Gaussian平滑
Clipping一个体
2D纹理投射
VolumePro绘制硬件
7.1隐式建模
7.2挤压成形
7.3构建表面
Delaunay 三角剖分
Gaussian Splatting
8.1读者
8.3输入者
Visualization Toolkit支持以下的输入者。(注意超类vtkImporter对于开发
8.4输出者
8.5创建hardcopy
8.6创建动画(使用方栓)
8.7使用区域数据工作
9.1代码需要考虑的事项
New()
Delete()
DebugOn()/ DebugOff()
Print()
PrintSelf(ostream,ident)
Name=GetClassName()
Flag=IsA(className)
*ptr=::SafeDownCast(vtkObject*0)
Void Modified()
Mtime=GetMTime()
9.3复制对象&被保护的方法
9.4写一个VTK类:一个复习
9.5对象工厂
10.1执行过程
UpdateInformation()关口
PropagateUpdateExtent()关口
TriggerAsynchronousUpdate()关口
UpdateData()关口
10.2使用流动
13.1vtkRenderWindow 交互类型
13.2GUI交互的通用方针
13.4MS Windows/Microsoft 基础类
13.5Tcl/Tk
14.1对象图表
OpenGL绘制器
14.3VTK文件格式
VTK 用户指南 版本 4.0 William J. Schroeder 1998-2000 第一部分 VTK 介绍 第 1 章 欢迎 1.1 机构-----------------------------------------------------------------------------------------------8 1.2 怎样使用 VTK----------------------------------------------------------------------------------8 1.3 附加资源-----------------------------------------------------------------------------------------8 第 2 章 安装 2.1 概述-----------------------------------------------------------------------------------------------9 2.2 安装 VTK 到 Windows9x/NT/ME/2000/XP------------------------------------------------9 二进制安装-------------------------------------------------------------------------------------9 源代码安装-------------------------------------------------------------------------------------9 2.3 安装 VTK 到 Unix 操作系统 源代码安装------------------------------------------------------------------------------------10 运行 CMake------------------------------------------------------------------------------------11 编译源代码 建立 VTK 多平台 安装 VTK 第 3 章 系统概述 3.1 系统设计---------------------------------------------------------------------------------------12 图形模型--------------------------------------------------------------------------------------13 可视化模型-----------------------------------------------------------------------------------15 3.2 创建一个应用---------------------------------------------------------------------------------19 用户方法、对象和命令--------------------------------------------------------------------19 Tcl----------------------------------------------------------------------------------------------19 C++---------------------------------------------------------------------------------------------20 Java Phthon Visual Basic/COM/ActiveX 3.3 在两种语言间转换 第二部分 通过例子学习 VTK 第 4 章 基础 4.1 创建 1 个简单的模型-------------------------------------------------------------------------24 程序化源对象---------------------------------------------------------------------------------24 读取源对象------------------------------------------------------------------------------------26 4.2 使用 VTK 交互器-----------------------------------------------------------------------------27 vtk 绘制窗口交互器 1
交互风格 4.3 滤波数据---------------------------------------------------------------------------------------29 4.4 控制相机---------------------------------------------------------------------------------------30 安装相机 简单操作方法 控制视角方向 透视与正交视 保存与恢复相机状态 4.5 控制光线---------------------------------------------------------------------------------------32 位置光 4.6 控制 3D 道具-----------------------------------------------------------------------------------32 指定 vtk 道具 3D 位置 演员 演员的详细级 装配 体 vtk 装载 3D 道具 4.7 作用纹理---------------------------------------------------------------------------------------37 4.8 拾取---------------------------------------------------------------------------------------------38 vtk 装配路线 例子 4.9 vtk 坐标和坐标系---------------------------------------------------------------------------40 4.10 控制 vtk 演员 2D----------------------------------------------------------------------------41 4.11 注释--------------------------------------------------------------------------------------------41 2D 注释 3D 注释和 vtk 跟踪 4.12 特殊绘图类-----------------------------------------------------------------------------------44 尺度棒 X-Y 绘制 边界盒轴 标记数据 4.13 变换数据--------------------------------------------------------------------------------------48 高级变换 第 5 章 可视化技术 5.1 可视化 VTK 数据集 vtkDataSet(和子类) -------------------------------------------------50 使用数据属性进行工作 颜色映射 轮廓化 浮雕化 流线图 流线表面 剪裁 融合数据 附加数据 2
用另外一个尺度给等值面赋颜色 抽取单元格子集 抽取单元格作为多边形数据 5.2 可视化多边形数据---------------------------------------------------------------------------67 手工产生多边形数据 产生表面当量 十比一抽取 平滑网格 粘贴数据 产生纹理坐标 5.3 可视化结构网格-----------------------------------------------------------------------------74 手工产生结构化网格 抽取计算平面 结构网格子样化 5.4 可视化直线网格-----------------------------------------------------------------------------76 手工产生 VTK 直线网格 抽取计算平面 5.5 可视化非结构网格--------------------------------------------------------------------------77 手工产生 VTK 非结构网格 抽取部分网格 非结构网格轮廓化 第 6 章 可视化图像和体数据 6.1 VTK 结构化点的历史表示-----------------------------------------------------------------80 6.2 手工产生 VTK 图像数据-------------------------------------------------------------------80 6.3 抽取图像数据子样--------------------------------------------------------------------------81 6.4 基于尺度值的弯曲--------------------------------------------------------------------------83 6.5 图像显示--------------------------------------------------------------------------------------83 图像观察者 图像演员 6.6 图像源-----------------------------------------------------------------------------------------85 2D 帆布图像源 3D 椭圆体图像源 高斯图像源 网格图像源 噪声图像源 正弦曲线源 6.7 图像处理--------------------------------------------------------------------------------------88 梯度化 高斯平滑 直方图 图像逻辑 重新切片 6.8 体绘制-----------------------------------------------------------------------------------------92 一个简单的例子 3
为什么会有多种体绘制技术? 产生一个 VTK 体 使用片层化函数 使用颜色变换函数 在一个体属性中控制颜色和透明度 在一个体属性中控制阴影 产生一个体映射 裁剪一个体 粘贴一个体 对一个体应用 3D 纹理 控制标准编码 体素光线计算 2D 纹理映射 VolumePro 绘制硬件 速度和精确度交替使用 使用 vtkLODProp3D 改善性能 可行性/局限性技术 第 7 章 建立模型 7.1 隐模型----------------------------------------------------------------------------------------114 定义隐函数 对隐函数进行抽样 7.2 挤压-------------------------------------------------------------------------------------------117 7.3 构建表面-------------------------------------------------------------------------------------119 Delaunay 三角形化 高斯油彩 无组织点产生表面 第三部分 VTK 研发者指南 第 8 章 数据接口和其他 8.1 读入器----------------------------------------------------------------------------------------130 多边形数据读入器 图像和体素读入器 数据集读入器 结构化网格读入器 线性网格读入器 非结构化网格读入器 8.2 写入器----------------------------------------------------------------------------------------131 多边形数据读入器 图像和体素读入器 结构化网格读入器 线性网格读入器 非结构化网格读入器 8.3 输入者----------------------------------------------------------------------------------------132 4
8.4 输出者----------------------------------------------------------------------------------------132 8.5 创建硬拷贝----------------------------------------------------------------------------------132 保存图像 保存大(高分辨率)图像 8.6 产生动画(使用样条) -----------------------------------------------------------------------134 8.7 使用现场数据工作--------------------------------------------------------------------------136 第 9 章 贡献编码 9.1 编码补偿--------------------------------------------------------------------------------------141 为 VTK 贡献编码的条件 编码风格 如何贡献编码 9.2 标准方法: 创建和消除对象---------------------------------------------------------------142 9.3 拷贝对象和受保护的方法------------------------------------------------------------------143 9.4 写一个 VTK 类: 综述-----------------------------------------------------------------------144 找到一个相似类 识别一个超类 单个类 Per.h 文件 必需的方法 文档编码 使用 SetGet 宏 向 VTK 中添加类 9.5 对象工厂--------------------------------------------------------------------------------------145 综述 如何写一个工厂 如何安装一个工厂 例子工厂 第 10 章 流水线执行管理 10.1 执行过程--------------------------------------------------------------------------------------151 概述和术语 更新信息通道 传播更新扩展通道 触发异步更新通道 更新数据通道 10.2 使用流---------------------------------------------------------------------------------------162 第 11 章 VTK 数据对象接口 11.1 数据组---------------------------------------------------------------------------------------166 方法 11.2 数据集---------------------------------------------------------------------------------------169 11.3 VTK 数据集接口---------------------------------------------------------------------------170 方法 例子 5
11.4 VTK 图像数据接口-----------------------------------------------------------------------174 方法 例子 11.5 VTK 点集接口-----------------------------------------------------------------------------176 方法 例子 11.6 VTK 结构化网格接口---------------------------------------------------------------------178 方法 例子 11.7 VTK 线性网格接口-----------------------------------------------------------------------178 方法 例子 11.8 VTK 多边形数据接口---------------------------------------------------------------------179 方法 例子 11.9 VTK 非结构化网格接口-----------------------------------------------------------------184 方法 例子 11.10 单元格接口(VTK 单元格子类) ------------------------------------------------------185 11.11 其他接口----------------------------------------------------------------------------------187 点 单元格数组 单元格类型 单元格连接 11.12 现场和属性数据接口------------------------------------------------------------------193 现场数据方法 数据集属性方法 第 12 章 如何写一个过程方法 12.1 概述----------------------------------------------------------------------------------------196 永远不要修改输入数据 参考计数数据 使用 Debug 宏 回收/删除截入的内在 修改时间 过程事件和异常终止执行 12.2 如何写一个绘图过滤器---------------------------------------------------------------199 概述 简单过滤器 复杂过滤器和流水线执行 抽取绘图过滤器 程序过滤器 重载流水执行方法 12.3 如何写一个图像过滤器---------------------------------------------------------------210 6
实现一个图像过滤器 第 13 章 用窗口系统集成 13.1 绘制窗口交互风格--------------------------------------------------------------------------216 13.2 GUI 交互的总指导线------------------------------------------------------------------------217 13.3 X Window, Xt, and Motif--------------------------------------------------------------------221 13.4 MS Windows/Microsoft Foundation Classes---------------------------------------------226 13.5 Tcl/Tk-------------------------------------------------------------------------------------------227 13.6 Java 第 14 章 编码资源 14.1 对象图表--------------------------------------------------------------------------------------230 基础 单元格 数据集 流水线 源 过滤器 映射器 图形 体绘制 成像 OpenGL 绘制器 拾取 变换塔形结构 14.2 过滤器总结-----------------------------------------------------------------------------------237 可视化过滤器 映射者对象 演员对象 14.3 VTK 文件格式--------------------------------------------------------------------------------244 二进制文件 数据集属性格式 例子 第 15 章 光盘 15.1 源代码 15.2 例子代码 15.3 Window 9x/NT/ME/2000/XP 预编译二进制 15.4 数据 15.5 文档 15.6 退化测试图像 15.7 Kitware 应用 7
第 1 章 欢迎 欢迎来到 VTK 可视工具箱用户指南,这本书已经对 VTK4.0 以后的版本进行了更新, VTK 是一个开放的、面向对象的软件系统,主要功能是计算机图形学、可视化和图像处理。 尽管它庞大和复杂,但它是为易学易用设计的,一旦你学会了基本的面向对象的设计和实现 方法。 VTK 是个大系统,因此,不可能将所有对象和方法的文档在这本书中体现,本书将介 绍 VTK 一些重要的概念,引导你尽快和高效的学习。一旦你掌握了这些基础,我们建议你 从 VTK 用户社区里获得许多资源(附加资源见第 4 页)。 VTK 是个源代码开放的系统,这意味着有数十个或数百个像你一样的研发者和用户为 系统作出了贡献。如果你认为 VTK 是个有用的工具,我们鼓励你贡献程序修正、算法、思 想或应用返回给 VTK 社区(见 204 页)。你也可支持商业公司研发或加进新的特性和工具。 1.1 结构 本手册分为三部分,每一部分又分为若干独立章节。第一部分是 VTK 总论,包括如何 在你机器上安装 VTK。这部分包括安装预编译库和可执行程序,或者从源代码编译软件。 还包括系统设计概述和如何创建 C++、Tcl、Java 和 Python 语言程序的应用。第二部分是用 户指南的核心,数十个例子来展示重要的系统特性。第三部分是 VTK 高级用户。第三部分 解释如何创建自己的类、扩展系统、同各种窗口和 GUI 系统交互。第十四章包括简化对象 图表,当你读写自己数据时,它提供 VTK 对象之间关系、过滤器列表、VTK 文件模式描述。 第十五章介绍随书光盘内容,最后是随机访问用户指南的方便索引。 1.2 如何使用 VTK 有两类 VTK 用户,一类是类开发者,他们用 C++来创建类,另一类是应用开发者,他 们使用 C++类库来建立组合应用程序。类开发者必须是 C++高手,如何想扩展或修改 VTK 类,你必有对它的内部结构和设计非常熟悉(见第三部分)。应用程序开发者不必会使用 C++, 由于编译过的 C++类库已经被封装起来,使用的解释型语言 Tcl、Python、Visual Basic、Java。 作为应用开发者你必须知道 VTK 对象的外部接口和它们之间的关系。 使用 VTK 的关键是要熟悉它的对象模板和混合它们的方式。如何你是一个新用户,首 先以安装软件开始。如果你是一个类开发者,你要安装源代码,然后编译它们。应用开发者 只需要预编译二进制文件和执行文件,我们建议你通过例子学习系统(应用开发者),通过 源代码来学习系统(类开发者)。从第三章开始阅读,它给出了一些系统关键概念,然后复 习第二章的例子。你也许希望运行许多例子,它们源代码位于目录 VTK/Examples 中(详见 描述在子目录的 VTK/Examples/README.txt 文件中)。还有数百个试验在源程序中,例如 在 VTK/Graphics/Testing/Tcl 和 VTK/Graphics/Testing/Cxx,多数是无文档的脚本。然而,它 们对理解类在 VTK 中是如何组织的,非常有用。 1.3 附加资源 为得到 VTK 工具箱更多的信息,我们推荐下列资源: · The Visualization Toolkit An Object-Oriented Approach To 3D Graphics, 3rd Edition Will Schroeder, Ken Martin, Bill Lorensen 520 pages, printed in full color includes CD-ROM with software/data updated for VTK version 4.2.《可视化工具箱 3D 图像面向对象方法(第三版)》, 这本书深入详细地论述 VTK 中的算法、数据结构和系统问题。 · 网站 http://public.kitware.com/包含引擎,指向许多其它资源,如在线手册、问题解答、 VTK 用户邮件列表,特别是 Doxygen 手册面相当精彩。尽管这些内容都可以从光盘获得, 也可从在线页 http://public.kitware.com/VTK/doc/nightly/html 获得。 · 许多 VTK 用户和开发者也在维护自己网站,值得推荐的一个是 Sebastien Barre’s 与 VTK 8
分享到:
收藏