VTK——Advanced 数据表示(学习笔记)
1.坐标系统
1.全局坐标系统Global coordinate system
表示三维的笛卡尔坐标系。通常被用来指定数据集的几何结构和数据属性。
2.数据集坐标系统 Dataset Coordinate System
数据集或者局部坐标系统是基于拓扑和几何坐标的组合。拓扑坐标用于指定一个特定的cell或者subcell,通常用 id 表示。几何坐标(又称 parametric coordinates 被限制在(0,1)之间)用来指定cell内特定的位置。两者相结合可以指定数据集中一个特定的位置。
3.结构坐标系统 Structured coordinate system
一些数据集是结构化的,如 image data 或者是 structured grids , 基于内部结构特征拥有的自然坐标系称为结构坐标系。结构坐标系以索引为依据,通过fix 其中一个索引值,vary 另一个值,可以指定 点, 线,面或者是体。结构系统通常用啦指定感兴趣区域 ROI。
数据集坐标系统下数据点或者元组的坐标与结构坐标系下的索引(Ip,Jp, Kp)和维度(nx,ny,nz)的关系如下:
2.元组细化Cell Tessellation
1.基础方法
基本方法是对GenericDataSet的单元格进行动态细分,然后对产生的线性细分进行操作。用伪代码表示如下:
代码中可以看出避免一次性对所有数据进行处理,避免大量存储资源的消耗。
基于边缘的细分算法最是简单,边缘细分的规则:每个单元边缘e通过误差度量(Error Measure)T进行评估,如果任何误差度量超过相应的阈值,则可以标记为细分。下图为Cell adaptor framework
该图显示了三种Error measure 的方法: 其中C是通过计算边缘的参数中心的值计算出来的。(1). 以垂直距离d为阈值 (2). 以AC和BC 的夹角alpha作为阈值 (3). 以i 和点 m 之间的距离为阈值 (4). 以像素为单位计算投射之后C点到AB 的距离。
2. 高级方法
预三角化,pre–triangulation
3.坐标变换
1.数据集坐标到全局坐标
使用插值函数通过参数坐标生成全局坐标:其中p为全局坐标,是cell points 的坐标。插值函数权重在参数坐标下计算。
插值函数:
2.全局坐标到数据集坐标
需要用到牛顿法计算。
首先定义三个已知全局坐标 p = p(x;y;z) 中插补函数Wi ,然后利用泰勒级数展开求近似,最后迭代计算。