欢迎来到天天文库
浏览记录
ID:38334119
大小:43.00 KB
页数:4页
时间:2019-06-10
《VTK第三篇之菜鸟入门——SPHERE:VTK自带的球型的三角面片显示》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、VTK第三篇之菜鸟入门——SPHERE:VTK自带的球型的三角面片显示VTK自带了很多的用来表示常见形状的类。这些东西虽然简单但是还是很有用的,毕竟是基础嘛。废话不多说了,直接说说代码吧。下面的代码来自C3P论坛,作者是谁,惭愧,又忘了,在这里致歉并感谢作者。在计算机里面,尤其是显示立体的东西,貌似都比较喜欢用三角形来作为最基本的元素,其中的道理我现在不懂,可能是三个点决定一个面吧。所以VTK里面的这个球体,貌似也是由三角形所组成的。1.还是先把前面的这些库贴上吧,CTRL+C、CTRL+V的时候还是很有用的。#includ
2、e"vtkRenderer.h"#include"vtkRenderWindow.h"#include"vtkRenderWindowInteractor.h"#include"vtkSphereSource.h"#include"vtkShrinkFilter.h"#include"vtkElevationFilter.h"#include"vtkDataSetMapper.h"#include"vtkActor.h"#include"vtkCullerCollection.h"voidmain(intargc,char*
3、argv[]){复制代码 2.OK,下面还是vtkRenderer、vtkRenderWindow、vtkRenderWindowInteractor这三个类的创建和部分初始化,这个貌似是比较固定的。这三个类看上去就是一环套一环的样子。vtkRenderer*renderer=vtkRenderer::New();renderer->GetCullers()->RemoveAllItems();vtkRenderWindow*renWin=vtkRenderWindow::New();renWin->AddRenderer(
4、renderer);vtkRenderWindowInteractor*iren=vtkRenderWindowInteractor::New();iren->SetRenderWindow(renWin);复制代码3.创建个sphere的实例,并且以经纬度的方式各分成12份。vtkSphereSource*sphere=vtkSphereSource::New();sphere->SetThetaResolution(12);sphere->SetPhiResolution(12);复制代码4.上面这些都是一些比较固定的东
5、西,或者说理解起来很容易,一看就能明白的东西。下面开始说些新东西吧。vtkShrinkFilter*shrink=vtkShrinkFilter::New();shrink->SetInput((vtkDataSet*)sphere->GetOutput());shrink->SetShrinkFactor(0.9);vtkElevationFilter*colorIt=vtkElevationFilter::New();colorIt->SetInput((vtkDataSet*)shrink->GetOutput());
6、colorIt->SetLowPoint(0,0,-0.5);colorIt->SetHighPoint(0,0,0.5);复制代码其实嘛,这里就是多了两个类而已,一个是vtkShrinkFilter,另一个是vtkElevationFilter。稍微解释一个这两个类,就能明白这几行代码是什么意思了。vtkShrinkFilter貌似这个类的作用就是用来缩小一个vtkDataSet这种数据类型表示的对象的,比如在这里应该就是缩小组成球面的三角形。(shrinkcellscomposinganarbitrarydatasetv
7、tkShrinkFiltershrinkscellscomposinganarbitrarydatasettowardstheircentroid.Thecentroidofacelliscomputedastheaveragepositionofthecellpoints.Shrinkingresultsindisconnectingthecellsfromoneanother.TheoutputofthisfilterisofgeneraldatasettypevtkUnstructuredGrid.)virtualvo
8、idvtkShrinkFilter::SetShrinkFactor(double)[virtual]Get/Setthefractionofshrinkforeachcell.Thedefaultis0.5.复制代码 vtkElevationFilter在这里作用貌似是把输入数据的值转化
此文档下载收益归作者所有