三角剖分——递归切耳算法(recursive cutting-ear)

  • 使用条件

    只适用于简单多边形。简单多边形:每个顶点只被两条边分享,如下图所示。

       

  • 术语

    带符号面积:顶点p1、p2和p3,通过叉乘(p1p2.X*p2p3.Y - p1p2.Y*p2p3.X)/2计算得到的面积(有正负号),即是带符号面积。
    顶点凹凸性:对于待测顶点i,计算i-1, i, i+1组成三角形的带符号面积Area,Area>0为逆时针,Area<0为顺时针,如果其时针特性和多边形的相同,就是凸点(convex vertex),否则为凹点(concave vertex)。
    注:判断多边形的时针特性,遍历计算每个顶点与相邻两个顶点组成的三角形的带符号面积,累加,大于0则为逆时针,小于0为顺时针。
    Ear:对于待测顶点i,假设其为凸点,且i-1, i, i+1组成的三角形内不包含多边形的其他顶点,则称为Ear。

  • 算法流程

1.  先判断多边形顶点序列的方向(顺时针/逆时针)

        2.  遍历每个顶点,判断是否为Ear,假如为Ear,则将该点从多边形顶点序列中删除,接着判断下一个顶点,直至只剩三个点。

如下图所示,依次判断点0到点i,3Ear则删除,接着判断点4。



           

                  参考文献:  http://www.geometrictools.com/Documentation/TriangulationByEarClipping.pdf


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值