LOGO水灵QQ:348774226MSN:shuiling119@hotmail.comStudyVTKTogether一起学习VTKAllRightsReservedby水灵一起学习VTK-第7讲主要内容:1.TheVisualizationModel2.vtkDataObjectandvtkDataSet3.VisualizationDataAllRightsReservedby水灵一起学习VTK-第7讲TheVisualizationModelGraphicalDataPicturesGraphicspipelineVisualizationDataDataFlowVisualizationPipelineisresponsibleforconstructingGeometricrepresentationthatisthenrenderedbytheGraphicpipeline.VisualizationpipelineAllRightsReservedby水灵一起学习VTK-第7讲Visualizationdata可视化数据(Visualizationdata)的特征:1.visualizationdataisdiscrete.---Interpolation:linear,quadratic,cubic,splineorotherinterpolationfunctions.2.visualizationdata'sstructuremayberegularorirregular(alternatively,structuredorunstructured).---regulardatacansavecomputermemory;irregulardatagivesusmorefreedominrepresentingdataandcanrepresentdatathathasnoregularpatterns.3.visualizationdatahasatopologicaldimension.---Thedimensionofthedataisimportantbecauseitimpliesappropriatemethodsforvisualizationanddatarepresentation.AllRightsReservedby水灵一起学习VTK-第7讲TheVisualizationModelDataFlowTwobasictypesofobjectsinvolvedthis:vtkDataObjectandvtkProcessObjectvtkDataObject:Dataobjectsrepresentthedatathatisprocessedbythevisualizationpipeline.Itisthegeneralrepresentationofvisualizationdata.vtkDataObjectsareusedtorepresentarbitraryrepositoriesofdataviathevtkFieldDatainstancevariable.ThesedatamustbeeventuallymappedintoaconcretesubclassofvtkDataSetbeforetheycanactuallybedisplayed.AllRightsReservedby水灵一起学习VTK-第7讲AllRightsReservedby水灵一起学习VTK-第7讲vtkDataObjectandvtkDataSetVTK一般把数据表示成场数据,数据集是带有拓扑和几何结构的数据对象。除了空间结构,数据集还附带有属性数据。属性数据包括:标量,矢量,张量,法向,纹理坐标,以及场数据。数据集数据属性(标量,矢量,张量,法向,纹理坐标,以及场数据)拓扑结构组织结构pointscells几何结构AllRightsReservedby水灵一起学习VTK-第7讲关于Cell从数学的角度来看,用Ci表示一个cell,那么cell就是一系列点的集合:Ci={p1,p2,...,pn}.pi∈P,P是一系列n维的点(n在这里取等3)。cell的类型决定了点的排列顺序或者说是cell的拓扑结构。定义cell的点的数目n叫做cell的大小(size)。当点pi∈Ci时,我们就说cellCi使用了点pi。这样可以定义一个“使用点”集合,用U(pi)表示:U(pi)={Ci:pi∈Ci}cell可以是基元(primary,就是基本元素,不可再分的一种结构,这只是我个人的一种翻译)或者是组合。像vertex,line这些就是primary,而trianglestrip就是primary的一种组合结构(composite).总的来说,cell分为线性和非线性两种。AllRightsReservedby水灵一起学习VTK-第7讲VTK中的拓扑单元类AllRightsReservedby水灵一起学习VTK-第7讲VTK中的拓扑单元类AllRightsReservedby水灵一起学习VTK-第7讲VTK中的拓扑单元类AllRightsReservedby水灵一起学习VTK-第7讲VTK中的拓扑单元类AllRightsReservedby水灵一起学习VTK-第7讲Linearcells:Vertex---0维基元Polyvertex---0维vertex的组合Line---1维基元Polyline---1维Line的组合Triangle---2维基元,注意是逆时针定义点的顺序,右手螺旋准则TriangleStrip---2维Triangle的组合Quadrilateral---2维基元,逆时针定义点的顺序,是凸多边形,边不相交,点在同一个平面上。右手准则定义法向量。Pixel---2维基元,由四个点定义,每条边都与邻边垂直,而且与x-y-z坐标系统坐标轴垂直。法向量与坐标系统中的某一坐标轴平行。注意四个点的顺序与Quadrilateral四个点的顺序不一样!注意这里的pixel是作为一个cell的基本类型,要与图像的pixel概念的区别。AllRightsReservedby水灵一起学习VTK-第7讲Linearcells:Polygon---2维基元,注意是逆时针定义点的顺序,右手螺旋准则,可以是非凸的,但边不能相交。Tetrahedron---3维基元Hexahedron---3维基元Voxel---3维基元Wedge---3维基元Pyramid---3维基元AllRightsReservedby水灵一起学习VTK-第7讲Nonlinearcells:主要应用于数值分析领域,它提供了更加精确的插值方法以及更好的曲线模型。与线性类型的一个显著区别是对它们的绘制方法和被多数的可视化算法所处理的方法不同。线性的cells绘制时先转换为线性基元,再直接被图形库所处理;而非线性cells是不能直接被图形库所支持的(除了B-splines或NURBS)。通常对于非线性cells的绘制是先把它们分解(TessellateorDecompose)为线性的cells,再进行绘制或渲染。非线性类型的cell有:QuadraticEdge;QuadraticTriangle;QuadraticQuadrilateral;QuadraticTetrahedron;QuadraticHexahedronAllRightsReservedby水灵一起学习VTK-第7讲AllRightsReservedby水灵一起学习VTK-第7讲VTK中的拓扑单元类vtkCellvtkCell3DvtkConvexPointSetvtkHexahedronvtkPyramidvtkTetravtkVoxelvtkWedgevtkEmptyCellvtkGenericCellvtkLinevtkPixelvtkPolygonvtkPolyLinevtkPolyVertexvtkQuadvtkTrianglevtkTriangleStripvtkVertexvtkNonLinearCellvtkExplicitCellvtkQuadraticEdgevtkQuadraticHexahedronvtkQuadraticQuadvtkQuadraticTetravtkQuadraticTriangleAllRightsReservedby水灵一起学习VTK-第7讲AttributeData属性数据属性数据是与数据集结构相关联的信息。数据集结构包括几何和拓扑,大多数情况下,属性数据是与数据的点或Cells相关联的,但有时也可能与某一条边或一个面相关联。关于属性数据的典型例子有某一个点上的温度或速度;一个cell的质量;流入或流出一个cell表面的热通量等。AllRightsReservedby水灵一起学习VTK-第7讲VTK中的数组类在VTK里,数据是存放在Contiguousdataarray,我们把这个叫做dataarrays。用类:vtkDataArray来表示。TupleAbstractionAllRightsReservedby水灵一起学习VTK-第7讲VTK中的数组类vtkDataArrayvtkBitArrayvtkCharArrayvtkDoubleArrayvtkFloatArrayvtkIdTypeArrayvtkIntArrayvtkLongArrayvtkShortArrayvtkUnsignedCharArrayvtkUnsignedIntArrayvtkUnsignedLongArrayvtkUnsignedShortArrayvtkVoidArrayAllRightsReservedby水灵一起学习VTK-第7讲TheTupleAbstractionTupleSize=3AllRightsReservedby水灵一起学习VTK-第7讲vtkDataSetvtkDataSet:abstractclasstospecifydatasetbehavior.vtkDataSetisanabstractclassthatspecifiesaninterfacefordatasetobjects.vtkDataSetalsoprovidesmethodstoprovideinformationsaboutthedata,suchascenter,boundingbox,andrepresentativelength.Adatasetconsistsofoneormorecells.Cellsarethefundamentalbuildingblocksofvisualizationsystems.Cellsaredefinedbyspecifyingatypeincombinationwithanorderedlistofpoints.Theorderedlist,oftenreferredtoastheconnectivitylist,combinedwiththetypespecification,implicitlydefinesthetopologyofthecell.Thex-y-zpointcoordinatesdefinethecellgeometry.(Seenextexample)AllRightsReservedby水灵一起学习VTK-第7讲InheritancediagramforvtkDataSetvtkDataSetAllRightsReservedby水灵一起学习VTK-第7讲OneExampleofacellAllRightsReservedby水灵一起学习VTK-第7讲FivedatasetsfindisVTKAllRightsReservedby水灵一起学习VTK-第7讲DataAttributes的表达AllRightsReservedby水灵一起学习VTK-第7讲Exa