logo资料库

VTK User's Guide(中文版)pdf.pdf

第1页 / 共258页
第2页 / 共258页
第3页 / 共258页
第4页 / 共258页
第5页 / 共258页
第6页 / 共258页
第7页 / 共258页
第8页 / 共258页
资料共258页,剩余部分请下载后查看
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
分享到:
收藏