Delaunay三角剖分

Delaunay三角剖分是对点集进行操作,得到的是一个由三角形组成的平面,三角形没有重叠,而这个平面的外围就是点集的图包。Delaunay三角剖分后的结果是唯一的,因为其中有一个思想就是让三角形的最小角最大化,所以需要不断的进行调整。Delaunay三角剖分的结果和Voronia图的结果是互偶(貌似是这种说法),就是两组结果里面的线段对应垂直。

书里面用的是随机增量的方法,

首先找到一个足够打的三角形把所有的点包围起来。这个三角形为((3m,0), (-3m, -3m), (0,3m)), 其中m = 所有点的x和y值的最大的一个值(当然比的是绝对值);

Delaunay:

P = 所有点集的随机排列;

T = {((3m,0), (-3m, -3m), (0,3m))};

for pr in P:

     在T中找出pi所在的三角形t(pi,pj,pk), pipjpk为t的三个点。

     if pr on the edge of t: //假设是边pipj

           //设三角形pipjpl和pipjpk共享边pipj的三角形

          链接prpk,prpl,//形成了4个小三角形

         legalized(pr,pipl,T)

        legalized(pr,plpj, T)

        legalized(pr, pjpk, T)

         legalized(pr,pkpi, T)

        //leglized函数,其实就是判断pr的四条对边是否合法

            

     else if pr in t:

            分别连接pr和abc,这样得到三个小三角形,;

             //依次判断三个小三角形是否合法;即,添加的三条边是否合法

            legalized(pr,pipj,T)

           legalized(pr,pjpk, T)

           legalized(pr, pkpi, T)

将和足够大的三角形有连接的三角形都删除掉,


legalizedEdge(pr, pipj, T):调整三角形,让最小角最大化

        if (pipj是非法的):

                 翻转pipj,得到边prpk // prpk为prpipjpk组成的四边行的另外一条对边。

                 LegalizedEdge(pr, pipk, T)

                  LegalizedEdge(pr, pjpk, T)



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值