Three.js实现三角剖分学习笔记Day2

Bowyer-Watson算法

该方法算逐点插入法的一种。

基本思路是将所有的散点放入同一个超级三角形T中,建立三角形列表Tlist,三点列表Plist,临时三角形列表Templist,边列表Elist。

首先需要将所有的点排序,从X坐标值最小点作为第一个插入值,然后按照从小到大从左到右的顺序依次加入,减少散点加入时的混乱情况。

p1是第一个加入点,有超级三角形的三个顶点与p1相连,构成三个三角形,并将这三个三角形加入到Templist。

p2即第二个加入点,对Templist中的三个三角形分别作外接圆,判断p2与三个外接圆的位置关系。

(1)若p2位于外接圆右侧,则将该外接圆所对应的三角形放入到Tlist中,是由于插入点是从左到右插入,此时的点已是在外接圆右侧,那么后面的插入点只会在更右的地方,此时的三角形是满足空圆性的,是Deluanay三角形定义的,也就不需要讨论。

(2)若p2位于外接圆外侧,跳过。

(3)若p2位于外接圆内侧,则需要将三角形从Templist中删除,将p2与原三角形三个顶点相连,生成新的三角形放入Templist中。

直至检测完所有的点。

然后需要将超级三角形三个顶点所涉及到的所有三角形删除,那么此时在Tlist中的三角形就是最终的三角网格。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值