《VTK培训的教程16088.docx》由会员分享,可在线阅读,更多相关《VTK培训的教程16088.docx(104页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、VTK 编编程简介(转载)3VTK数据据类型7VTK教程程之一可视视化管线99VTK教程程之二可视视化管线的的执行122VTK教程程之三数据据集14VTK教程程之四单元元和点集116VTK教程程之五数据据集的类型型和数据集集的属性数数据21VTK教程程之六构建建数据集的的例子程序序25VTK教程程之七可视视化基础算算法-概述27VTK教程程之八可视视化基础算算法-颜色映射射28VTK教程程之九可视视化基础算算法-二维轮廓廓线(等值值线)提取取32VTK教程程之十可视视化基础算算法-三维轮廓廓面(等值值面)提取取39VTK教程程之十一可可视化基础础算法-方向线422VTK教程程之十二可可视化基础
2、础算法-几何体变变形45VTK教程程之十三可可视化基础础算法-位移图488VTK教程程之十四可可视化基础础算法-用隐函数数构建几何何体52VTK培训训教程之十十五可视化化基础算法法-用隐函数数提取数据据集中的数数据61VTK培训训教程之十十六可视化化基础算法法-用隐函数数可视化随随机或离散散运动的物物体64VTK(VVisuaalizaationn Tooolkitt)安装和和配置没有找到vvc6.00或vc8.0下的安安装版,若若是用vcc7.0话话有现成的的安装版本本,只能自自己动手编编译了一下下安装版的配配置环境(VC6,Winddows) 1. 必须要下下载的东西西,VC66已经装好好
3、为前提:vtk-5.0.4-wiin32.exe 安装程序序httpp:/vvtk.oorg的Downnloaddvtk-5.0.4.ziip 源程程序vtkkdataa-5.00.4.zzip 数数据2. 安装vtkk-5.00.4-wwin322.exee在D:PProgrram FFilessVTKK 5.00, 解压压vtk-5.0.4.ziip到D:PProgrram FFilessVTKK 5.00vtkk-5.00.4, vtkddata-5.0.4.ziip到D:PProgrram FFilessVTKK 5.00vtkkdataa-5.00.4 3.用用cmakke编译到到D
4、:PProgrram FFilessVTKK 5.00binn下,(这一步花花了我不少少时间,每每次cmaake编译译到一定量量就死掉,不不知道什么么原因,编编译了不下下10次终于于成功) 4. 参数设置置,几个关关键参数要要注意;vtk_uuse_gguisuupporrt,打开开它,才能能选vtkk_usee_mfcc,再connfiguure;vtk_ddata_roott: 目的的是告诉ccmakee,vtk 需要的数数据都在哪哪里,我们们的数据在在D:PProgrram FFilessVTKK 5.00vtkkdataa-5.00.4buildd_exaamplees: 就就是询问是
5、是否编译 vtk 中的例子子,我第一一次的时候候选上了,结结果编译了了2个小时的的例子还没没编译完,所所以我后来来选了offf。buildd_shaared_libss: 如果果设置为ooff,就就只会生成成lib 文件,用用于开发肯肯定是够了了。如果设设置为onn,将会多多生成 ddll 文文件,这些些dll需要要拷到wiindowws/syystemm目录下。建建议选Onn, 5. cmakke中选ok,在binn文件下,编编译dsww文件就行行,我大概概花6分钟。6. 测试:这这时新建一一个proojectt, wiin32 conssole appllicattion, an empt
6、ty prrojecct, 生生成后给ssourcce fiiles加加一个teest.ccpp,把把下面的代代码放进去去。#incllude vtkkConeeSourrce.hh #incllude vtkkPolyyDataaMappper.hh #incllude vtkkRendderWiindoww.h #incllude vtkkCameera.hh #incllude vtkkActoor.h #incllude vtkkRenddererr.h #incllude vtkkProppertyy.h int mmain() vttkConneSouurce *conne = v
7、tkCConeSSourcce:NNew(); coone-SetHHeighht( 33.0 ); coone-SetRRadiuus( 11.0 ); coone-SetRResollutioon( 110 ); vttkPollyDattaMappper *conneMappper = vttkPollyDattaMappper:Neww(); cooneMaapperr-SeetInpputCoonnecctionn( coone-GetOOutpuutPorrt() ); vttkActtor *coneeActoor = vtkAActorr:Neew(); cooneAcctor
8、-SettMappper( coneeMappper ); vttkRenndereer *rren1= vtkkRenddererr:Neew(); reen1-AddAActorr( cooneAcctor ); reen1-SetBBackggrounnd( 00.1, 0.2, 0.44 ); vttkRennderWWindoow *rrenWiin = vtkRRendeerWinndow:Neww(); reenWinn-AdddRenndereer( rren1 ); reenWinn-SeetSizze( 3300, 300 ); innt i; foor (ii = 00;
9、 i Rennder(); renn1-GGetAcctiveeCameera()-Azzimutth( ii ); coone-Deleete(); cooneMaapperr-Deeletee(); cooneAcctor-Dellete(); reen1-Deleete(); reenWinn-Deeletee(); reeturnn 0; 环境路径设设置,这个个比较重要要:1).修改改Projject settting-C/CC+ -Cattegorry-PPreprrocesssor-Addditioonal incllude direectorries: D:Prrograam F
10、iilesVTK 5.0vtk-5.0.4Grraphiics,DD:Prrograam FiilesVTK 5.0vtk-5.0.4Fiilterring,D:PProgrram FFilessVTKK 5.00vtkk-5.00.4CCommoon,D:Proogramm FillesVVTK 55.0bbin,DD:Prrograam FiilesVTK 5.0vtk-5.0.4Reenderring 2). 修修改Proojectt setttingg-Liink-Inpuut-OObjecct/liibrarry moodulees: openggl32.lib kernnel322
11、.libb useer32.lib gdi332.liib wiinspoool.llib ccomdllg32.lib advaapi322.libb sheell322.libb olee32.llib ooleauut32.lib uuidd.libb odbbc32.lib vtkCCommoon.liib vttkDICCOMPaarserr.libb vtkkexoIIIc.llib vvtkexxpat.lib vtkFFilteeringg.libb vtkkfreeetypee.libb vtkkftgll.libb vtkkGeneericFFilteeringg.libb
12、 vtkkGrapphicss.libb vtkkHybrrid.llib vvtkImmaginng.liib vttkIO.lib vtkjjpeg.lib vtkkNetCCDF.llib vvtkpnng.liib vttkRennderiing.llib vvtksyys.liib vttktifff.liib vttkVollumeRRendeeringg.libb vtkkWidggets.lib vtkzzlib.lib 3) Prrojecct seettinng LLink - CCateggory: Inpput - Addditiionall libbraryy pat
13、th:D:Prrograam FiilesVTK 5.0binbinDebuugVTK 编编程简介(转载)0 如何利利用文档 VTK 是是由 Wiill SSchrooederr 等创立立的 Kiitwarre Innc. 的的开放源码码产品。KKitwaare 提提供关于VVTK 的的技术支持持和各种服服务产品,包包括教科书书和用户指指南:Thhe Viisuallizattion Toollkit An OObjecct-Orrientted AApprooach To 33D Grraphiics, 3rd edittion 和 Thhe Viisuallizattion Toollki
14、t Userrs GGuidee 。两本本书的内容容各有侧重重,教科书书主要介绍绍可视化的的各种算法法以及 VVTK 中中的数据结结构,而用用户指南强强调软件的的使用方法法。可以根根据使用过过程中遇到到的不同问问题参考两两本书中的的相应章节节。编程中中对具体的的类、函数数等的使用用可以参考考电子版的的手册。编编程中遇到到的问题,可可以在 VVTK 的的 maiillisst 上提提出,一般般都会有解解答。 1 编译 VTK 库 1.1 准准备源代码码 从 htttp:/www.vtk.org/ 下载源源代码。源源代码按成成熟度依次次分为官方方发行版、每每日打包版版和 CVVS 开发发版,其中中
15、官方发行行版最稳定定,CVSS 开发版版最新。一一般应用使使用官方发发行版即可可。 1.2 用用 CMaake 产产生具体平平台下的工工程文件 VTK 是是用 C+ 语言言开发的平平台无关的的图形库。为为了使相互互关联的 VTK 库代码能能在不同平平台(如 Winddows 和 Unnix)和和不同编译译器(如 Visuual SStudiio 6.0 和 Borlland)下下方便使用用,Kittwaree 开发了了 CMaake 这这一转换工工具。比如如使用 CCMakee,可以为为 Winndowss 平台下下的 Viisuall Stuudio 6.0 产生相应应的工程文文件(.dds
16、p 或或 .dssw 文件件),此后后就可以在在 Vissual Studdio的集集成开发环环境(IDDE)下进进行编译连连接了。 CMakee 提供一一个用户界界面,用户户可以定制制某些变量量,其中比比较重要的的是 BUUILD_SHARRED_LLIBS,根根据它的选选择可以生生成 VTTK 的静静态库或者者动态链接接库。如果果编译成静静态库,那那么在开发发应用程序序时要将相相应库代码码加入可执执行程序;如果是动动态库,则则可执行程程序与动态态链接库是是分离的。用用动态库的的好处是可可以减小主主程序的体体积,缺点点是可执行行程序不能能独立运行行。不过在在有些情况况下,因为为某些专利利算法
17、在商商业用途里里只能授权权使用,所所以 VTTK 提供供的部分代代码只能以以动态链接接库的方式式使用,所所以应该熟熟悉编译动动态链接库库的方法。其其他较常见见的重要变变量有 VVTK_UUSE_PPATENNTED 、VTKK_USEE_HYBBRID 等,编译译时使它们们打开开关关,就可以以编译出相相应的库以以便日后使使用了。 图 1 1.3 编编译库 以下以 WWindoows 平平台下的 Visuual SStudiio 6.0 编译译环境为例例来说明使使用方法,不不再声明。 打开用 CCMakee 产生的的 .dssw 文件件,选择工工程类型进进行编译。工工程类型主主要分两类类:Rel
18、leasee 和 DDebugg ,开发发过程中一一般用 DDebugg ,到发发行时再用用 Relleasee ,所以以在此用DDebugg即可。编编译整个工工程产生全全部库,这这个过程所所需时间很很长。编译译完成后,会会在 CMMake 里面指定定的目标目目录内(如如 vtkkbin )产生编编译出的库库文件(缺缺省在 vvtkbiin/biin/Deebug 目录内)。 2 在 VVisuaal Sttudioo 6.00开发环境境下使用 VTK 库 VTK 库库编译好了了以后,就就可以在 Visuual SStudiio 开发发环境下使使用 VTTK 库了了。使用 VTK库库首先要设设
19、置头文件件和库文件件的路径,以以便使用 VTK 库的程序序在编译和和链接的时时候可以搜搜索到。头头文件的位位置即源代代码的各个个子目录,里里面包含了了大量的 .h 文文件。将其其路径加入入到 Viisuall Stuudio 6.0 的 Toools - OOptioons - Diirecttoriees 内,如如图 2。注注意除了源源码的各个个子目录外外,还要加加上一个 vtkCConfiiguree.h 文文件的路径径,它在 CMakke 产生生的目标目目录内。库库文件的设设置与此类类似,也在在 Dirrectooriess 页面进进行,其路路径是前述述编译产生生库文件的的目录(如如 v
20、tkkbin/bin/Debuug )。这这样设置好好路径以后后,使用 VTK 库的程序序就可以正正确地编译译和链接了了。对于使使用动态链链接库的程程序来说,此此时还不能能运行编译译出来的可可执行程序序( .eexe),还还需要一步步,即把 VTK 的动态链链接库文件件所在路径径加入操作作系统的环环境变量 PATHH ,或直直接将这些些库文件拷拷贝到系统统目录。 图 2 3 VTKK 库编程程特点 VTK 库库是用面向向对象的 C+ 语言写成成的,由于于主要开发发者有着十十数年涉及及可视化系系统的经验验,所以 VTK 拥有非常常合理的模模型和结构构。 VTK 的的编程风格格在教科书书的附录 A
21、,包括括命名规范范、术语定定义、各类类对象的用用途说明等等。值得注注意的,比比如它的对对象工厂(OObjecct Faactorry)概念念。在 VVTK 里里,是用:New() 的方方式来初始始化对象的的,而不是是用 C+ 中的的 neww 来新建建对象,对对象工厂不不仅可以做做到代码与与设备无关关,而且通通过引用计计数(reefereence counntingg),可以以使程序清清晰简明,不不容易发生生内存泄漏漏或崩溃的的问题。 VTK 中中实现了数数百个类及及其方法,它它们之间简简化的继承承和关联关关系可以从从教科书附附录 A.3 的图图中看到。熟熟悉不同的的类的用途途和它们之之间的关
22、系系,对编程程十分有利利。 对开发者来来说,如何何扩充这个个类库是重重要的,教教科书的附附录 A.4 介绍绍了这个问问题,而用用户指南的的开发者指指南部分有有一章来讲讲具体的做做法。 4通过例子子学习 VVTK 概概念及编程程 要用 VTTK 库进进行可视化化编程首先先要对可视视化要有一一定的概念念和基础。除除了普通的的可视化教教科书以外外,VTKK 提供的的教科书本本身就非常常好。VTTK 源程程序包的 Exammple 目录包括括了一系列列例子,它它们都有详详尽的注释释。一步步步学习这些些例子,可可以很容易易理解 VVTK 涉涉及的可视视化概念和和 VTKK 编程的的一般特点点。 学习这些
23、例例子首先要要成功编译译运行它们们。这个步步骤跟编译译库类似,也也需要先用用 CMaake 工工具生成 Visuual SStudiio 的工工程文件,然然后编译;而要保证证程序能正正确运行,还还得保证 VTK 库文件在在环境变量量的 PAATH 内内。 初学者应该该从 Tuutoriial 目目录内的 Stepp x 例例子入手,它它们从最简简单的 VVTK 程程序开始,一一步步地增增加概念,演演示了各种种可视化概概念。注意意例子里的的注释,以以第一个程程序(Sttep1 的 Coone 程程序)为例例,看一下下源程序: 源程序:EExampple/TTutorrial/Stepp1/Cxx
24、x/Coone.ccxx / / Thhis eexampple ccreattes aa pollygonnal mmodell of a coone, and thenn rennderss it to / thhe sccreenn. Itt willl rootatee thee conne 3660 deegreees annd thhen eexit. Thee bassic / seetup of ssourcce - mappper - aactorr - renddererr - rendderwiindoww is / tyypicaal off mosst VTTK pr
25、rograams. / / Fiirst incllude the requuiredd heaader filees foor thhe VTTK cllassees wee aree usiing. #incllude vtkkConeeSourrce.hh #incllude vtkkPolyyDataaMappper.hh #incllude vtkkRendderWiindoww.h #incllude vtkkCameera.hh #incllude vtkkActoor.h int mmain( intt arggc, cchar *arggv ) / / NNext we cc
26、reatte ann insstancce off vtkkConeeSourrce aand sset ssome of iits / ppropeertiees. TThe iinstaance of vvtkCooneSoourcee coone is ppart of aa / vvisuaalizaationn pippelinne (iit iss a ssourcce prrocesss obbjectt); iit prroducces ddata / (outpput ttype is vvtkPoolyDaata) whicch otther filtters may pr
27、occess. / vtkCConeSSourcce *ccone = vttkConneSouurce:Neww(); conee-SeetHeiight( 3.00 ); conee-SeetRaddius( 1.00 ); conee-SeetRessoluttion( 10 ); / / IIn thhis eexampple wwe teerminnate the pipeelinee witth a mappper pproceess oobjecct. / (Inteermeddiatee fillterss succh ass vtkkShriinkPoolyDaata cco
28、uldd be inseertedd in / bbetweeen tthe ssourcce annd thhe maapperr.) We ccreatte ann insstancce off / vvtkPoolyDaataMaapperr to map the polyygonaal daata iinto grapphicss priimitiives. We / cconneect tthe ooutpuut off thee conne soouecee to the inpuut off thiis maapperr. / vtkPPolyDDataMMappeer *cco
29、neMMappeer = vtkPPolyDDataMMappeer:NNew(); coneeMappper-SetIInputt( coone-GetOOutpuut() ); 程序段 11 这个简单的的例子是一一个控制台台下的程序序,创建一一个棱锥,在在屏幕上绘绘制,旋转转360度度后退出。程程序虽简单单,但已经经包括了数数据源、映映射器、演演员、绘制制器、绘制制窗口等概概念,这些些概念在 VTK 编程中几几乎都是必必然涉及的的。通过这这个例子,就就可以对教教科书里讲讲到的各种种可视化概概念(如相相机、演员员),编程程模型(如如管道)等等有直观的的了解了。 这里仅举这这个最简单单的例子,
30、事事实上,VVTK 自自带的例子子循序渐进进,从简单单的概念,到到各种复杂杂的概念、算算法和数据据结构、GGUI 编编程、直到到具体的应应用等,都都做了很好好的例证。结结合教科书书和例子,可可以较快地地理解 VVTK 的的各个方面面。 比如说,如如果要用 VTK 在 Wiin32 环境下编编程,应该该学习 EExampple/GGUI/WWin322 下的例例程,如果果要用 MMFC 框框架,那么么可以参考考其中的 vtkMMFC 例例程。体会会 VTKK 库和 Win332 的关关系、和 MFC 框架的关关系,以便便在这些平平台上开发发自己的程程序。这需需要对 VVTK和操操作系统、编编程环
31、境本本身有比较较深入的了了解,而这这种了解对对自行开发发程序是十十分必要的的。 5 用 VVTK 进进行 CTT 片三维维重构 VTK 作作为一种通通用的可视视化类库,在在科学和工工程界有着着广泛的应应用。其中中一种重要要而常见的的应用就是是在医学领领域,比如如著名的“可可视化人”项项目,就有有 VTKK 的应用用。实际上上,VTKK 在医学学方面的应应用是是 VTK 比较强调调的,在它它提供的例例程应用中中,就有专专门的医学学目录。学学习它们,并并应用于我我们的项目目中,是一一条合适的的途径。 比如,如果果要做一个个 3D 的医学影影像系统,其其中重要的的一个环节节就是三维维重构,这这也是在
32、全全膝置换手手术中需要要的。所以以,用 VVTK 进进行 CTT 片的三三维重构,就就是一个合合适的应用用的例子。 利用 VTTK 做 CT 片片的三维重重构,从算算法和数据据结构来看看,就是一一个读取数数据问题和和一个图形形显示问题题。 对于我们手手里的 CCT 片,因因为它们符符合 DIICOM 3.0 标准,所所以对它们们的读取还还是相对容容易的。VVTK 已已经实现了了这类数据据的读取,vvtkImmageSSourcce类的很很多子类都都可以完成成这种工作作,如vttkImaageReeaderr 类或者者 vtkkVoluumeReeaderr 等。这这样我们编编程的时候候只要指定
33、定必须的参参数,就可可以实现对对单张 CCT 片乃乃至 CTT 片序列列的读取了了。根据 VTK 的数据管管道,原始始数据读取取入了以后后,就可以以使用各种种各种过滤滤器进行数数据转换,在在这个例子子里,即进进行表面抽抽取、影射射,然后就就可以绘制制了。因为为是三维重重建,所以以还应该加加入交互器器,以便可可以在绘制制窗口里进进行交互。 关于重建算算法,对于于 CT 片这种三三维规则数数据场,可可以采取成成熟、基本本的算法来来进行三维维重建,比比如 MaarchiingCuubes 算法。 我们使用 Visuual SStudiio 6.0 开发发平台来完完成上述的的工作,使使对 CTT 片的
34、读读取、重建建及显示、交交互等功能能融合到 MFC 的框架中中,以便提提供一个方方便的用户户接口。具具体的程序序另件给出出,各部分分的功能可可以参考注注释。 参考文献献 1.Thee Vissualiizatiion TToolkkit AAn Obbjectt-Oriienteed Appproaach TTo 3DD Graaphiccs, 33rd eeditiion 2.Thee Vissualiizatiion TToolkkit UUsers Guuide 3.VTKK 源码:httpp:/wwww.vvtk.oorg/gget-ssoftwware.php 4.VTKK 电子文文
35、档:htttp:/wwww.vtkk.orgg/gett-sofftwarre.phhp 5.VTKK 邮件列列表:htttp:/ 6.htttp:/n/neww/couurse/vtk/indeex.httm VTK数据据类型分为两种:vtk是是基于C+的库,自自然是面向向对象的库库了 对对象类型有有两种 图形模型对对象(thhe Grraphiics MModells) 可视化模型型对象(tthe VVisuaalizaationn Moddels) 整个图形模模型主要分分为九类对对象: (1)渲染染控制器: 定义与与设备无关关的坐标计计算方法, 创建绘绘制窗口; (2)渲染染窗口(RRe
36、ndeerWinndow):其基类类为vtkkRendderWiindoww, 管理理显示设备备上的窗口口, 一个个或多个绘绘制方 法法可在渲染染窗口上创创建一个场场景。渲染染窗口是用用户图形界界面, 其其中包括 了设置渲渲染窗口的的大小, 产生立体体显示效果果等的方法法, 一共共控制控制制两个缓存存; (3)渲染染器(Reenderrer):基类为vvtkReenderrer,作作用是管理理光源、照照相机和绘绘制对象等等的位置、属属性等; 提供 世世界坐标系系, 观察察坐标系及及显示坐标标系之间的的转换。建建立好一个个Renddererr 后将其其加入ReenderrWinddow中即即可将
37、场景景显示出来来; (4)灯光光( Liight):VTKK中的实现现类为vttkLigght, (5)照相相机(Caameraa): VVTK实现现类为vttkCammera, (6)角色色(Acttor):vtkAActorr代表渲染染场景中的的绘制对象象实体,通通过参数的的调节可以以设置角色色的位置方方向, 渲渲染 特性性(Proopertty),引引用(reenferrencee),纹理理影射(TTextuure)等等属性,并并可对Acctor进进行放缩。角角色 的改改变是通过过一个4*4的变换换矩阵实现现的; (7)属性性(Proopertty):实实现类为vvtkPrroperrt
38、y。要要使三维物物体具有真真实感, 必须说明明几何物体体的一些特特性,例如如 光照特特性(泛光光,漫反射射,镜面反反射,边缘缘颜色),反射强度度,物体的的灰度,物物体的绘制制样式(点点, 线框框, 表面面) ,着着色模式( flaat, GGouraaud, Phonng)等;VTK 中正是通通过属性模模型来对其其进行说明明的; (8)映射射(Mappper):vtkkMappper指定定了渲染数数据和图形形库中基本本图元之间间的联系。VVtkMaapperr的一些派派生 类通通过LoookupTTablee映射数据据并控制图图形库中相相应Acttor 图图元的生成成。一个或或多个Acct o
39、r可可以使用相相同的Maapperr。Mappper有有多个参数数对其进行行控制, 如ScaalarVVisibbilitty 标志志 可以设设置scaalar的的数据是否否影响相关关的Acttor 的的颜色; ScallarMoode 可可以控制AActorr的颜 色色是scaalar poinnt还是ccell的的值; 渲渲染方式可可以通过 ( ImmmediiateMModeRRendeeringgOn)和和( ImmmediiateMModeRRendeeringgOff) 控制, 前一项项表示立即即渲染, 后一 项项表示将渲渲染放于渲渲染列表中中, 一般般选择ImmmediiateM
40、ModeRRendeeringgOn方式式进行, 选择后者者将会占用用较多的系系统资源, 影响系系统的性能能; (9)变换换(Traansfoorm):vtkTTranssformm是一个放放置4*44变换矩阵阵的堆栈, 可对这这一堆栈进进行各种操操作, 如如:平 移移, 缩放放, 旋转转等, 一一般在栈的的顶部进行行。实现过过程主要由由渲染控制制器创建渲渲染窗口,由渲染器器在渲染窗窗口上绘制制场景。场场景包括绘绘制对象、映映射、属性性、变换、光光 源、照照相机等。VVTK获取取数据的方方式是基于于拉技术, 即在管管道的下一一对象请 求数据时时, 管道道对象才进进行数据集集的相关处处理, 因因
41、此可减小小系统的运运算负荷, 这对提提 高系统统实时性大大有好处。 可视化模型型(theeVisuualizzatioon Moodelss) 用VTK进进行可视化化应用是非非常方便的的,它包括括两个基本本部分。首首先,建立立适当的目目标图形来来演示数据据;其次, 建立一一个数据流流水线(ddata pipeelinee)来处理理数据, 建立流水水线(piipeliine)就就是将Soourcee、Fillterss 和Maapperrs连接起起来。VTTK的可视视化模型主主要包括两两类对象: (1)数据据对象 (a)多边边形数据(vtkPPloyDData):表示由由顶点、直直线、多边边形即
42、三角角面片组成成的几何体体, 支持持多种的原原子类 型, 如如vtkVVerteex,vttk-PlloyVeertexx, vttkLinne 等。 (b)结构构点数据(vtkSStrucctureePoinnt):是是一包括表表面形状及及几何形状状的几何体体。 (c)非结结构点数据据(vtkkUnSttructturePPointt):指定定了几何体体的外观;结构网格格( vttkStrructuureGrrid):指定了几几何 体体的结构。 (d)非结结构网格(vtkUUnStrructuureGrrid):可以为任任意的ceell 类类型的组合合。 (e)数据据对象继承承关系。 (2)
43、过程程对象 VTK 中中定义的过过程对象根根据其piipeliine主要要包括了数数据源(SSourcce),过过滤器(FFilteers),映映射(Maapperrs),数数据流水线线(datta piipeliine),过程如图图所示: 下载 (99 KB)2007-12-224 111:50数据源(SSourcce): vtkSSourcce是所有有数据源的的基类, 其子类定定义了许多多数据源类类型; 过滤器(FFilteers):vtkFFilteer 是各各种Fillter的的基类, 从vtkkSourrce中派派生出来, 接收SSourcce 中的的数据, 进行种 不同同的Fill
44、ter处处理工作。FFilteers为VVTK的主主要部件, 由其基基类派生出出了许多子子类, 实实现了 图形形学算法。将将其封装起起来, 用用户只需要要编写简单单程序接口口调用就可可, 并可可以通过改改变 参数数来达到想想要的效果果; 映射(Maapperrs) : vtkkMappper 是是所有Maapperrs 的基基类, 从从Filttes接受受数据,并并把其映射射为图形库库中的基本本图 元。根据映映射方式的的不同, 有多个继继承子类。VTK教程程之一 可可视化管线线 VVTK是一一个基于面面向对象的的开源三维维绘图软件件包,和其其它的的三三维绘图引引擎如OSSG、OGGRE不同同之处在于于,VTKK可视化对对象主要是是各种数据据,更加注注重对数据据分析处理理后的可视视化,可视视化的内容容是人们无无法直接感感受到的东东西,如地地质构造、地地层分布、矿矿床分布、三三维空间应应力场的状状态变化等等等,而OOSG、OOGRE是是基于场景景的可视化化,更强调调视觉感官官的感受,所所以OSGG主要应用用于虚拟现现实领域,而而VTK主主要应用于于科学计算算可视化领领域,本教教程主要介介绍VTKK的可视化化应用。 VTTK的可视视化设计是是基于管线线流的设计计模式,将将要处理的的数据作为为流动介质质在管线中中流动,不不同的阶段段对数据有有不同的处处理方式