二维三角剖分技术已经非常成熟,而且网上现成的实现代码也很多;下面说一下三维曲面的三角剖分:
曲面剖分通常有两种方法,其一是将点投影到某一平面,运用平面的三角剖分算法完成剖分,而三维点问连接关系不变,这种方法将三维问题转化为平面问题,可称为平面投影法;其二是直接由三维点来构造剖分,称为直接剖分法.三角剖分通常有两种类型,第一类是三角剖分的顶点就是所给点集P,不改变原点集的拓扑结构,实质是对P的线性插值;另外一类是在一定的误差范围内用剖分来逼近曲面,这时的顶点在数量和位置上均不同于原点集。
1,平面投影法
平面投影法就是将三维点投影到某平面,如x—y平面,然后对投影点集作平面域的三角剖分,最终形成的曲面三角剖分的点间连接关系与相应的投影点间的连接关系相同,这种方法的实质是平面域的三角剖分.近几年来在剖分研究方向、具体算法等方面有了很大的进展.当平面4点形成凸四边形时将有两种剖分,对采用哪一种三角剖分可以提出不同的选择原则,最常用的有最小内角最大化、边的总长度最小化即最小权等.
2,直接剖分算法
与平面投影法不同,直接剖分算法是直接根据三维散乱点构造三角剖分.实用的直接剖分算法很少,1988年Choi提出的一种增量算法[3是较好的一种方法,得到广泛的应用.Choi算法有下述几个重要概念:
(1)顶点、边、三角形、法矢散乱点集中的每一点在剖分中为三角形的顶点;3个顶点V1、V2、V3,如果满足det(V1、V2、V3)≠0 则这3点形成一个三角形;从原点看去,按逆 时针方向依次连接三角形顶点,相邻两点形成的有向边称为剖分的边;由上述有向边按右手准则来确定三角形的单位法矢.
(2)可见边
对于边AB,任一顶点P与它的关系有如下3种:
如果det(A,B,P)<0,则P.Right.AB;
如果det(A,B,P)=0,则P.On.AB;
如果det(A,B,P)>0,则P.Left.AB
若顶点(P.Right.AB),则称边AB相对点P可见,顶点A、B称为P的可见点.