您的位置:首页 > 编程语言 > C语言/C++

VTK学习之路——单元和点集

2014-09-17 13:24 274 查看
      VTK的数据集对象主要由多个单元构成,如对于如下的多边形网格,其由多个四边形单元构成。



      图中的各个顶点(1、2、3...25)定义了网格图形的几何形状,构成了数据集的几何数据,各个顶点依照构建的单元类型,按一定顺序排列,相互连通,构成了单元的拓扑结构,如在上图中,构建的单元类型为四边形单元,则第一个单元由1、6、7、2四个顶点按1、6、7、2顺序排列,构成一个四边形单元。

  下面再给出一个6面体类型单元的例子,如下图所示:






图中的6面体单元由7、21、22、5、8、10、1、6共8个顶点构成,共有6个面、12条边,顶点8和10构成了一条边,顶点8、10、21、22构成了一个面,顶点坐标存储在顶点列表数组中,如图中左侧的Point
list用于存储顶点坐标。

   在VTK中提供了许多单元类型,下面分别对这些单元进行介绍。
1、顶点单元

基本的0维度单元,用单一的点来定义,如下图所示:







2、多顶点单元

    基本的0维度单元,用多个点来定义,如下图所示: 







3、线单元

    基本的1维单元,由两个顶点定义,线的方向从第一个顶点指向第二个顶点,如下图所示:







4、多义线单元

   组合1维单元,由多条线组合而成,多义线由一系列按顺序排列的N+1个顶点构成,N表示线段的数目,每相邻的两个点构成一条线段,如下图所示:




 5、三角形单元

     基本的2维单元,由三个按逆时针顺序排列的顶点构成,三角面的法线方向遵循右手规则,如下图所示:











6、三角条带

    组合的2维单元,由N+2个按顺序排列的点构成,N表示三角形的数目,每相邻的三个点构成一个三角形,如下图所示:









7、4边形单元

基本的2维单元,由按逆时针方向排列的位于同一平面上的4个顶点构成,构成的4边形必须是凸4边形,4边形形成的平面法线方向遵循右手规则,如下图所示:











8、像素单元

四边形单元的特例,是一个正方形单元,构成单元的4个边相垂直正交,如下图所示:



9、多边形单元

  基本的二维单元,由N个逆时针排列的顶点组成,这N个顶点位于同一平面上。多边形表面的法线遵循右手规则,如下图所示:



   10、四面体单元

    基本的3维单元,由4个不共面的点组成,一个4面体有6个边和4个三角面,如下图所示:






    



11、六面体单元

  基本的3维单元,8个不共面的顶点构成,该单元必须是凸的,如下图所示:









VTK除了提供这些基本的单元外,还提供了一些二维或三维的组合单元,这些组合单元可以分解为基本单元,如下图所示:



   

构成单元的顶点在3维空间中定义,而单元有不同的拓扑维度,如0维的点,一维的线,二维的三角形、三维的4面体单元等,由于决定单元的顶点定义在三维空间中,所以,不论哪种拓扑维度的单元,都可以在三维空间中定义,单元是构建数据集的基础,建立可视化的数据集时,首先需要考虑的是如何构建这种数据集的单元类型,例如,需要可视化一个多边形面时,可以考虑将多边形面进行三角剖分,构建多个三角单元,作为该多边形面的基本单元。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息