最新VTK培训的教程.doc
《最新VTK培训的教程.doc》由会员分享,可在线阅读,更多相关《最新VTK培训的教程.doc(288页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、Four short words sum up what has lifted most successful individuals above the crowd: a little bit more.-author-dateVTK培训的教程VTK培训的教程VTK 编程简介(转载)3VTK数据类型7VTK教程之一 可视化管线9VTK教程之二 可视化管线的执行12VTK教程之三 数据集14VTK教程之四 单元和点集16VTK教程之五 数据集的类型和数据集的属性数据21VTK教程之六 构建数据集的例子程序25VTK教程之七 可视化基础算法-概述27VTK教程之八 可视化基础算法-颜色映射28V
2、TK教程之九 可视化基础算法-二维轮廓线(等值线)提取32VTK教程之十 可视化基础算法-三维轮廓面(等值面)提取39VTK教程之十一 可视化基础算法-方向线42VTK教程之十二 可视化基础算法-几何体变形45VTK教程之十三 可视化基础算法-位移图48VTK教程之十四 可视化基础算法-用隐函数构建几何体52VTK培训教程之十五 可视化基础算法-用隐函数提取数据集中的数据61VTK培训教程之十六 可视化基础算法-用隐函数可视化随机或离散运动的物体64VTK(Visualization Toolkit)安装和配置没有找到vc6.0或vc8.0下的安装版,若是用vc7.0话有现成的安装版本,只能自
3、己动手编译了一下 安装版的配置环境(VC6,Windows) 1. 必须要下载的东西,VC6已经装好为前提:vtk-5.0.4-win32.exe 安装程序 http:/vtk.org 的Downloadvtk-5.0.4.zip 源程序vtkdata-5.0.4.zip 数据 2. 安装vtk-5.0.4-win32.exe在D:Program FilesVTK 5.0, 解压vtk-5.0.4.zip到D:Program FilesVTK 5.0vtk-5.0.4, vtkdata-5.0.4.zip到D:Program FilesVTK 5.0vtkdata-5.0.4 3. 用cmak
4、e编译到D:Program FilesVTK 5.0bin下,(这一步花了我不少时间,每次cmake编译到一定量就死掉,不知道什么原因,编译了不下10次终于成功) 4. 参数设置,几个关键参数要注意; vtk_use_guisupport,打开它,才能选vtk_use_mfc,再configure; vtk_data_root: 目的是告诉cmake,vtk 需要的数据都在哪里,我们的数据在D:Program FilesVTK 5.0vtkdata-5.0.4 build_examples: 就是询问是否编译 vtk 中的例子,我第一次的时候选上了,结果编译了2个小时的例子还没编译完,所以我后
5、来选了off。 build_shared_libs: 如果设置为off,就只会生成lib 文件,用于开发肯定是够了。如果设置为on,将会多生成 dll 文件,这些dll需要拷到windows/system目录下。建议选On, 5. cmake中选ok,在bin文件下,编译dsw文件就行,我大概花6分钟。 6. 测试:这时新建一个project, win32 console application, an empty project, 生成后给source files加一个test.cpp,把下面的代码放进去。 #include vtkConeSource.h #include vtkPolyD
6、ataMapper.h #include vtkRenderWindow.h #include vtkCamera.h #include vtkActor.h #include vtkRenderer.h #include vtkProperty.h int main() vtkConeSource *cone = vtkConeSource:New(); cone-SetHeight( 3.0 ); cone-SetRadius( 1.0 ); cone-SetResolution( 10 ); vtkPolyDataMapper *coneMapper = vtkPolyDataMappe
7、r:New(); coneMapper-SetInputConnection( cone-GetOutputPort() ); vtkActor *coneActor = vtkActor:New(); coneActor-SetMapper( coneMapper ); vtkRenderer *ren1= vtkRenderer:New(); ren1-AddActor( coneActor ); ren1-SetBackground( 0.1, 0.2, 0.4 ); vtkRenderWindow *renWin = vtkRenderWindow:New(); renWin-AddR
8、enderer( ren1 ); renWin-SetSize( 300, 300 ); int i; for (i = 0; i Render(); ren1-GetActiveCamera()-Azimuth( i ); cone-Delete(); coneMapper-Delete(); coneActor-Delete(); ren1-Delete(); renWin-Delete(); return 0; 环境路径设置,这个比较重要: 1).修改Project setting-C/C+ -Category-Preprocessor-Additional include direct
9、ories: D:Program FilesVTK 5.0vtk-5.0.4Graphics,D:Program FilesVTK 5.0vtk-5.0.4Filtering,D:Program FilesVTK 5.0vtk-5.0.4Common,D:Program FilesVTK 5.0bin,D:Program FilesVTK 5.0vtk-5.0.4Rendering 2). 修改Project setting-Link-Input-Object/library modules: opengl32.lib kernel32.lib user32.lib gdi32.lib win
10、spool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib vtkCommon.lib vtkDICOMParser.lib vtkexoIIc.lib vtkexpat.lib vtkFiltering.lib vtkfreetype.lib vtkftgl.lib vtkGenericFiltering.lib vtkGraphics.lib vtkHybrid.lib vtkImaging.lib vtkIO.lib vtkjpeg.lib vtkNetCDF.lib
11、 vtkpng.lib vtkRendering.lib vtksys.lib vtktiff.lib vtkVolumeRendering.lib vtkWidgets.lib vtkzlib.lib 3) Project setting Link - Category: Input - Additional library path: D:Program FilesVTK 5.0binbinDebugVTK 编程简介(转载)0 如何利用文档 VTK 是由 Will Schroeder 等创立的 Kitware Inc. 的开放源码产品。Kitware 提供关于VTK 的技术支持和各种服务产
12、品,包括教科书和用户指南:The Visualization Toolkit An Object-Oriented Approach To 3D Graphics, 3rd edition 和 The Visualization Toolkit Users Guide 。两本书的内容各有侧重,教科书主要介绍可视化的各种算法以及 VTK 中的数据结构,而用户指南强调软件的使用方法。可以根据使用过程中遇到的不同问题参考两本书中的相应章节。编程中对具体的类、函数等的使用可以参考电子版的手册。编程中遇到的问题,可以在 VTK 的 maillist 上提出,一般都会有解答。 1 编译 VTK 库 1.1
13、 准备源代码 从 http:/www.vtk.org/ 下载源代码。源代码按成熟度依次分为官方发行版、每日打包版和 CVS 开发版,其中官方发行版最稳定,CVS 开发版最新。一般应用使用官方发行版即可。 1.2 用 CMake 产生具体平台下的工程文件 VTK 是用 C+ 语言开发的平台无关的图形库。为了使相互关联的 VTK 库代码能在不同平台(如 Windows 和 Unix)和不同编译器(如 Visual Studio 6.0 和 Borland)下方便使用,Kitware 开发了 CMake 这一转换工具。比如使用 CMake,可以为 Windows 平台下的 Visual Studio
14、 6.0 产生相应的工程文件(.dsp 或 .dsw 文件),此后就可以在 Visual Studio的集成开发环境(IDE)下进行编译连接了。 CMake 提供一个用户界面,用户可以定制某些变量,其中比较重要的是 BUILD_SHARED_LIBS,根据它的选择可以生成 VTK 的静态库或者动态链接库。如果编译成静态库,那么在开发应用程序时要将相应库代码加入可执行程序;如果是动态库,则可执行程序与动态链接库是分离的。用动态库的好处是可以减小主程序的体积,缺点是可执行程序不能独立运行。不过在有些情况下,因为某些专利算法在商业用途里只能授权使用,所以 VTK 提供的部分代码只能以动态链接库的方式
15、使用,所以应该熟悉编译动态链接库的方法。其他较常见的重要变量有 VTK_USE_PATENTED 、VTK_USE_HYBRID 等,编译时使它们打开开关,就可以编译出相应的库以便日后使用了。 图 1 1.3 编译库 以下以 Windows 平台下的 Visual Studio 6.0 编译环境为例来说明使用方法,不再声明。 打开用 CMake 产生的 .dsw 文件,选择工程类型进行编译。工程类型主要分两类:Release 和 Debug ,开发过程中一般用 Debug ,到发行时再用 Release ,所以在此用Debug即可。编译整个工程产生全部库,这个过程所需时间很长。编译完成后,会在
16、 CMake 里面指定的目标目录内(如 vtkbin )产生编译出的库文件(缺省在 vtkbin/bin/Debug 目录内)。 2 在 Visual Studio 6.0开发环境下使用 VTK 库 VTK 库编译好了以后,就可以在 Visual Studio 开发环境下使用 VTK 库了。使用 VTK库首先要设置头文件和库文件的路径,以便使用 VTK 库的程序在编译和链接的时候可以搜索到。头文件的位置即源代码的各个子目录,里面包含了大量的 .h 文件。将其路径加入到 Visual Studio 6.0 的 Tools - Options - Directories 内,如图 2。注意除了源码
17、的各个子目录外,还要加上一个 vtkConfigure.h 文件的路径,它在 CMake 产生的目标目录内。库文件的设置与此类似,也在 Directories 页面进行,其路径是前述编译产生库文件的目录(如 vtkbin/bin/Debug )。这样设置好路径以后,使用 VTK 库的程序就可以正确地编译和链接了。对于使用动态链接库的程序来说,此时还不能运行编译出来的可执行程序( .exe),还需要一步,即把 VTK 的动态链接库文件所在路径加入操作系统的环境变量 PATH ,或直接将这些库文件拷贝到系统目录。 图 2 3 VTK 库编程特点 VTK 库是用面向对象的 C+ 语言写成的,由于主要
18、开发者有着十数年涉及可视化系统的经验,所以 VTK 拥有非常合理的模型和结构。 VTK 的编程风格在教科书的附录 A,包括命名规范、术语定义、各类对象的用途说明等。值得注意的,比如它的对象工厂(Object Factory)概念。在 VTK 里,是用:New() 的方式来初始化对象的,而不是用 C+ 中的 new 来新建对象,对象工厂不仅可以做到代码与设备无关,而且通过引用计数(reference counting),可以使程序清晰简明,不容易发生内存泄漏或崩溃的问题。 VTK 中实现了数百个类及其方法,它们之间简化的继承和关联关系可以从教科书附录 A.3 的图中看到。熟悉不同的类的用途和它们
19、之间的关系,对编程十分有利。 对开发者来说,如何扩充这个类库是重要的,教科书的附录 A.4 介绍了这个问题,而用户指南的开发者指南部分有一章来讲具体的做法。 4通过例子学习 VTK 概念及编程 要用 VTK 库进行可视化编程首先要对可视化要有一定的概念和基础。除了普通的可视化教科书以外,VTK 提供的教科书本身就非常好。VTK 源程序包的 Example 目录包括了一系列例子,它们都有详尽的注释。一步步学习这些例子,可以很容易理解 VTK 涉及的可视化概念和 VTK 编程的一般特点。 学习这些例子首先要成功编译运行它们。这个步骤跟编译库类似,也需要先用 CMake 工具生成 Visual St
20、udio 的工程文件,然后编译;而要保证程序能正确运行,还得保证 VTK 库文件在环境变量的 PATH 内。 初学者应该从 Tutorial 目录内的 Step x 例子入手,它们从最简单的 VTK 程序开始,一步步地增加概念,演示了各种可视化概念。注意例子里的注释,以第一个程序(Step1 的 Cone 程序)为例,看一下源程序: 源程序:Example/Tutorial/Step1/Cxx/Cone.cxx / / This example creates a polygonal model of a cone, and then renders it to / the screen. I
21、t will rotate the cone 360 degrees and then exit. The basic / setup of source - mapper - actor - renderer - renderwindow is / typical of most VTK programs. / / First include the required header files for the VTK classes we are using. #include vtkConeSource.h #include vtkPolyDataMapper.h #include vtk
22、RenderWindow.h #include vtkCamera.h #include vtkActor.h int main( int argc, char *argv ) / / Next we create an instance of vtkConeSource and set some of its / properties. The instance of vtkConeSource cone is part of a / visualization pipeline (it is a source process object); it produces data / (out
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 最新 VTK 培训 教程
限制150内