CCDT与CDT

来源:互联网 发布:飞鱼网络电视看不了 编辑:程序博客网 时间:2024/04/28 16:58

    在进行Conforming_Gabriel函数实现时,偶然发现一片论文关于CCDT的介绍,因为网上类似资源比较少,索性就翻译过来了(由繁体翻译为简体偷笑),留作翻阅~~可以用到的同学也可以直接拿走~~但请注明转载处~~

    知识点:Conforming constrained Delaunay Triangulation(CCDT):

    CCDT和CDT的区别:除了原始输入的节点外,有额外新增Steiner point的为CCDT,没有新增的为CDT。其中新增Steiner point与否的条件以有无检测到输出线段侵入到原始输入的线段;或者是检测到不合适的三角形,像是skinny triangle此类外接圆半径与三角形最短边之比大于某个比例。而处理的顺序以线段进入情况优先考虑。

    

    上图所示的是线段侵入的处理过程:(a)发现输入线段ab的直径圆内包含其他点,(b)在ab的中点新增一个Steiner point  S1,再以aS1与S1b产生两个直径圆检测内部是否有其他点,(c)在S1b的中点新增一个Steiner point并形成一个直径圆,检查圆内是否有其他点。重复此步骤直到各直径圆内不包含其他点,最后即为网格化的结果,如上图(c)所示。

    

    上图是不合适的三角形图例:(a)橘黄色部分为不合适的三角形,其内部为外接圆圆心,(b)外接圆圆心上新增一个Steiner point。  

    对于不合适的三角形则依照使用者所设定的限制条件而用,如三角形的角度或者是面积不符合使用者所设定的条件时,在必须遵守Delaunay外接圆定理的情况下,移除外界院内其余线段,并额外插入外接圆的圆心,如上图所示;但若新增圆心恰巧为某线段的直径圆范围内,依照处理级别的顺序,则此圆心会被移除,另行将之改为新增此线段的中点,以达到使用者设定的条件。

    下图的(a)为使用者输入的点和线段,并对于限制三角网格最小角度与面积的条件不同而可以有不同的三角化结果,其CCDT结果去下图(b)和(c)所示。其中下图(b)和(c)所设的条件仅面积限制相同,前者为限制任何一个三角网格的面积不可大于4000个像素,后者不可大于2500个像素。而CCDT为本研究所采用的网格化算法,与CDT相同都以检测侵入线段为辅助,并加入Steiner point的做法。

    


    

    上图为使用者输入数据而产生的CCDT结果:(a)输入点和线段,(b)任一三角网格面积限制在4000个像素以内,(c)任一三角网格面积限制在2500个像素以内

    此方法在本篇研究中可满足使用者依图形轮廓输入点和线段之后,增加适当的点的数量以及均匀的将点分布在形状上,使得能够利用这些点表示图形的结构。并且透过CCDT筛选不合适的三角形,让本系统对单体三角形的面积和角度的挑选上更加有利,如下图所示,以便应用在网格法的模拟物理变形中。

    

   

    三角化过程中,各个点的坐标系以平移的视窗坐标表示,因此所得到的三角网格面积等同于视窗像素面积。


0 0