基础

Description:

要将数据可视化,首先要求我们能够提炼数据的特征信息:

①可视化数据是离散的。例如要显示y=x*x,必须将其离散化。[设定定义域,得出相应的值域,显示有限的数据]为了提高精度,则有必须使用插值方法。

②可视化数据可以是规则的,或是不规则的。规则数据可以节省存储空间,但是不规则数据可以给我们更大的表示自由度。

③可视化数据必须由一个拓扑维度。可能的维度有点0维,线1维,平面2维,立体三维,动画思维或者更高。

DataSet:可视化管道中的对象数据就被称作数据集DataSet,其本身是个抽象的形式。DataSet组成,结构信息[拓扑和几何信息]和数据属性。Primitive: Cell ,Point[ scalars, vertors, normals, texture coordinates, tensors]

拓扑:具有几何变换不变性。例如:说一个多边形是三角的,即指其拓扑;而给定的每个点的坐标,则为其几何。

几何:空间描述。常见变换有旋转,平移和缩放。

属性:是对拓扑和几何信息的补充。可能是某点的温度值,或是cell 的质量之类。

结构信息组成单元:points和cells。其中cell 指定拓扑,points指定几何。

Cell Types:数据由一个或多个cell 构成。Cell 单元格 / 穴 / 细胞:指定类型的有序点列构成。数学上,Ci表示一个cell ,则Ci = { p1, p2,      ,pn },pi属于P,P是一个n维的点集合。

VTKcell 类型有vertex顶点,线,多边形和三角带(多个三角片组成)。

Triangle:主要的二维cell ,使用三个逆时针的有序点列表示,点列的方向指定了平面的法向,基于右手系。

Triangle strip:(不)共面的多个三角片构成。点列数目:N+2。

Pixel:四个点构成的二维cell 。注意此处的像素不同于通常的理解是一个点,而是由相邻的四个点组成的单元格。

Voxel:八个点构成的三维cell

Attribute Data 属性数据:经常,属性数据是与数据集中的点或cell 关联,但偶尔也会分配给cell 的部分,如边或面。属性数据的类型是一些常见的数据类型,如温度,压力等就是标量值。通常,属性数据可以是n维的数组。

Scalars:标量数据是在每个位置具有单值的数据。如温度,压力,密度,高度等。

Vectors:矢量数据是具有方向和幅度的数据。表示为三元组(u, v, w)。如速度流,粒子流,风移等。

Normals:方向矢量,即其幅度恒为1。通常用于 计算 投影,光照等。

Texture Coordinates:纹理映射 坐标。

Tensors:张量,矢量和矩阵的通用数学表达。K阶张量可以视为k维表格。0阶即是标量,1阶为矢量,2阶位矩阵。3阶位一个三维的规则阵列。

Types of Datasets(用户自定义类型):

多边形数据:顶点,多顶点,线段,多线段,多边形和三角带。无结构的,即非规则的。构成了数据和算法的桥梁。

结构化点:基于规则,矩形栅格的点或cell 的集合。二维则对于像素图,位图等图像数据,而如果是堆栈平面形式的则对应体数据。

I、线素1D,像素2D和体素3D。

II、可以使用隐含表示。

III、仅需数据维数,原点和数据间隔值。

IV、数据维数是个3值向量(nx, ny, nz ),分别表示x, y, z轴方向的点的数目。

V、原点是三维空间中x-y-z中最小的点。

VI、数据间隔:指定像素或体素的三个方向的单位尺度。

VII、构成的cell 维数:(nx-1, ny-1, nz-1 )。形成的数目是三个维度相乘,需要选择cell 是只需要给出其相应的索引值或坐标即可。
综合
vtk 中内存分配采用连续内存,基于索引访问内容。
vtkStructuredPoints:其中维数对应拓扑;原点和间隔对应几何。另外,其隐含了点和cell 的顺序:先是x,后是 y, 最后是 z方向增加编号。即点或cell 的索引值应等于index(u, v, w) = u + v *nx+ w *nx*ny; index(u, v, w) = u + v *(nx-1)+ w * (nx-1)* ( ny-1);
关于数据属性:vtk 中的属性都是与点关联(称作点属性),而没有与cell 实现关联(cell 属性)。
点属性:使用组织类vtkPointData和数据说明类vtkScalars, vtkVectors, vtkNormals, vtkCoords, vtkTensors和vtkUserDefined表示。
--vtkPointData:主要提供两级管道间的复制,插值和数据移动等服务。
--数据说明类:数据表示和存取。
--通常每个数据集中的点与其属性数据间存在一一对应的关系。
--属性数据存取:通过点的id号获取。如aDataSet->GetPointData()->GetScalars()->GetScalar(129);得出第129个点的标量值。〔其中假定标量数据已经赋予且非空〕

你可能感兴趣的:(算法,存储,dataset,Primitive,数据可视化,Types)