瓷附熔基底冠网格模型的过渡算法的制作方法

文档序号:6571811阅读:209来源:国知局
专利名称:瓷附熔基底冠网格模型的过渡算法的制作方法
技术领域
本发明涉及计算机辅助设计领域,特别是计算机辅助由牙体修复体网格模型产生过渡网格曲面。
背景技术
随着科学技术的进步,许多领域所构造和使用的三维模型越来越精细、越来越复杂。对于口腔修复体三维模型尤其如此,修复体上的尖、脊、沟等特征形态决定了修复体的表面形状极其的复杂。基于连续曲面的造型设计已不能很好地表示其表面形状,而利用离散造型技术例如离散网格,则不但可以精确表示其形状还有利于模型的进一步的构造和设计。但随着形状要求和精度要求的不断提高,模型的数据量越来越大。例如达到医用精度的一颗牙齿的修复体模型都有几万个三角面片或者更多,在计算机中对模型进行操作的时间也会随着数据量的增加而增加。在一些软件系统中,对离散网格模型的操作会有一定的时间要求,例如对于医用的口腔修复体CAD软件系统,医生需要在短时间内对患者的牙体模型进行设计。
目前对于离散网格的过渡算法并不是很成熟,最近几年由于离散网格的应用在逐渐加强,陆续提出了一些典型的过渡算法,主要可分为基于滚动球方法和隐式曲面的方法。
Yu-Shen Liu对滚动球算法做了比较深入的研究,将两个待过渡的基网格曲面放在一起,利用一个球沿着相交的轮廓进行滚动一周,可以根据球的中心得到曲线spine curve,同时滚动球与每个基曲面的交线叫做linkage curve。沿着spine curve按照一定的扫掠方式进行扫掠可以得到过渡曲面。这种方法简单易行,但线的构造用到滚动球,所以要求待过渡的其曲面的形状在相接近部分的曲面形状要适合用滚动球过渡,并且会将基曲面相靠近的一部分网格删除或者拓扑改变。因而对于像口腔修复中需要连接内外表面的状况,既由于基曲面边界部分其形状特殊性无法用滚动球设计也由于需要和预备体贴合必需保持内表面边界形态的要求,所以此算法不适合运用到口腔修复中的网格模型过渡。
基于隐式曲面的网格构造方法是近些年来得到快速发展并大量运用到离散网格模型中的一种有效的造型方法。最常用的一种隐式曲面造型技术是通过抽取所生成标量场的等值面来生成最终曲面。隐式曲面有着鲜明的优缺点,用户可以根据隐式曲面方程方便地确定空间点和隐式曲面的相对位置,最明显的优点是其光滑性非常高所以非常适合于过渡及融合等网格操作。但它不易控制,难以直观显示,而且在通过变分插值技术构造隐式曲面的时候,必须要解一个线性方程组。这个方程组的系数矩阵的大小和模型边界的顶点数目有着密切的关系,随着离散模型的三角片数目的增长,模型边界的顶点也随着增多,从而解方程的时间也跟着增长。因此在需要实时显示或操作的软件系统中,例如口腔修复CAD系统中,如果模型的数据量很大,那么采用这种算法产生的延迟会严重影响医生的诊治和患者的治疗。

发明内容
本发明的目的是提供一种高效的针对牙体三角网格模型的过渡算法,能够对两个模型进行快速地过渡,同时保证过渡网格面的质量;为实现上述目的,提出一种一种瓷附熔基底冠网格模型的过渡算法,其特征在于包括根据模型边界进行分段、利用弗格森曲线获取骨架线插值点、在骨架线之间构造过渡曲面插值点、边界的投影缝合;所述根据模型边界进行分段是将模型的上边界按边界边累加的长度进行等距分段,通过计算上边界的的总长度,根据需要分段的数目获得每段的等距长度后,从边界的有序的第一个顶点重新开始计算,在某两个相邻顶点构成的边上插入等距点v1i,使得从第一个顶点到v1i之间的累加边长为等距长度的i倍,从而获得上边界的等距点v10,v11,…,v1n-1,为了进一步适用下面的算法,还需要对整体模型构造一个近似的中轴线计算重心,点v1c=Σi=0n-1v1i/n;]]>则近似中轴线法矢为Nor=Σi=0n-1(v1c-v1i+1)×(v1i-1-v1c)/n,]]>其中上式中v1-1=v1n-1,v1n=v10,对于下边界,为了和上边界的等距点相对应,等距点则是根据Nor和v1i组成的平面与下边界的边界边进行相交计算从而得到与上边界的等距点相对应的下边界等距点v2i;上述式中的i为等距点的索引值,n为等距点的数目;所述获取骨架线插值点,是利用弗格森曲线获得;弗格森曲线的矢值形式 这里需要用到曲线的端点的切矢值,在模型中,对于上边界上的等距点v1i,它的法矢为v1iN,则它的切矢值为v1i′=v1N×(v1N×Nor),同理得可以到下边界分段点切矢值v2i′;上述式中的i为等距点的索引值,n为等距点的数目,u为一段弗格森曲线中自变量在
区间上的取值;
所述构造过渡曲面插值点是将两条骨架线和上边界的交点加上交点之间的原模型边界顶点数作为两条骨架线对应插值点之间的离散点的数目,每个离散点的位置由对应的边界上的顶点相对于两骨架线与上边界的交点的位置确定,具体算法如下设骨架线和上边界的交点为v0和vn,中间有n-1个边界上的顶点vjj=1…n-1,骨架线上的对应的两个离散点为s0和sn,Pj为重心点v1c、边界上的分段点和中轴线法矢量Nor构成的平面,spi为直线方程spi-1+x(vi-vi-1)与Pi的交点,其中j=1…n,sp0=s0,从sp0开始依次计算得到sp1、sp2…,最后得到的spn与vn会有一定的位置差异,根据这个差别来调整的整体的误差,调整的方法为sp1j=spj+(vn-spn)/n j=1…n-1,上面是从骨架线与边界的交点v0到交点vn的方向顺序计算的,为了进一步使形状逼近边界,再从交点vn到交点v0的方向计算得到sp2j,最终两插值点中间的离散点为sj=(sp1j+sp2j)/2,从骨架线上的插值点向两侧按照一定的点数作为取相应的离散点作为过渡线的起点和终点,用这两个点再次用弗格森曲线插值公式进行插值,此时两端点的切矢方向根据端点和端点外侧的点确定;所述的边界投影缝合,是通过分段进行缝合的一种方法,将上边界的分段点v1i和下边界的分段点v2i分别投影到其相邻的原模型边界顶点中的某一个顶点上,为对齐每段在离散点的端点和在边界上的端点,采用下面的方法来确定边界上的分段端点顶点的位置求重心点v1c、中轴线矢量Nor和端点vs构成的平面和原网格模型的上边界边相交的点vs1,计算交点在所在边 上的位置 则vs对应的点为vs′=v1ip<0.5v1i+1p≥0.5]]>根据此种方法投影获得对应的端点vs′,即可以使得端点尽量对齐,也可以保证每段顶点数目至少有一个,不会出现没有顶点而不能缝合的状况;对于给定两排顶点,为了使缝合的三角片比较规整和对齐,采用一种投影缝合算法,首先利用投影顶点来判断需要连接形成一条边的一对顶点,具体方法如下对于第一、第二的两个顶点向量Vec1,Vec2,存储的顶点分别为 和 这里指的投影是通过一种算法使得第二个顶点向量Vec2里的每个点都对应第一个顶点向量Vec1里的一个点,最后的结果为 投影的方法采用的是基于边长长度比率的投影方法,先计算第二个顶点向量Vec2里顺序连接各点形成的总的边长长度Len2,再依次算出点v20到v2i按照顺序连接形成的边长的长度占总的边长长度Len2的比率p2i,同理计算第一个顶点向量Vec1里的每个点的边长长度比率p1j,再根据每个点的边长长度比率p1j在总的边长长度Len2的比率p2i里面的位置关系确定上边界的等距点v1j和下边界的等距点v2k,最终根据已确定的投影关系生成若干三角片完成缝合。
本发明利用样条曲线的优点进行形态控制的过渡算法,不仅能够提高过渡面生成的速度,同时还具有一定的适应性,能获得高质量的牙体修复体数据,在计算机辅助口腔修复设计、医学图像系统等领域有着重要的应用价值。


图1模型边界俯视分段示意2模型截面示意3骨架线的构建示意4离散点的构建(n=7)图5分片插值点之间的过渡图6缝合区域的确定图7投影匹配点的确定图8缝合算法流程图9缝合完成示意图具体实施方式
本发明的核心思想是将样条曲线利用到生成网格顶点的过程中,同时为了在能够快速进行过渡的同时还可以保证过渡曲面和基曲面的过渡光滑,本发明提出了一种基于边界边形状的过渡离散点构造方法和一种投影缝合方法。
下面结合附图详细描述本发明的网格过渡算法。作为一种具体的实现方案,本算法主要包括四个步骤根据模型边界进行分段,利用弗格森曲线获取骨架线插值点,在骨架线之间构造过渡曲面插值点,边界的投影缝合。下面对其逐一介绍。
根据模型边界进行分段图1和图2给出了待过渡的网格曲面示意图。首先将模型的上边界按边界边累加的长度进行等距分段。通过计算上边界的的总长度,根据需要分段的数目获得每段的等距长度后。从边界的有序的第一个顶点重新开始计算,在某两个相邻顶点构成的边上插入等距点v1i,使得从第一个顶点到v1i之间的累加边长为等距长度的i倍。从而获得上边界的等距点v10,v11,…,v1n-1。为了进一步适用下面的算法。还需要对整体模型构造一个近似的中轴线。
计算重心,点v1c=Σi=0n-1v1i/n;]]>则近似中轴线法矢为
Nor=Σi=0n-1(v1c-v1i+1)×(v1i-1-v1c)/n;]]>其中上式中v1-1=v1n-1,v1n=v10;对于下边界,为了和上边界的等距点相对应,等距点则是根据Nor和v1i组成的平面与下边界的边界边进行相交计算从而得到与上边界的等距点相对应的下边界等距点v2i。
上述式中的i为等距点的索引值,n为等距点的数目。
获取骨架线插值点弗格森曲线的矢值形式 这里需要用到曲线的端点的切矢值,在模型中,对于上边界上的等距点v1i,它的法矢为v1iN,则它的切矢值为v1i′=v1N×(v1N×Nor),同理可以得到下边界分段点切矢值v2i′;上述式中的i为等距点的索引值,n为等距点的数目,u为一段弗格森曲线中自变量在
区间上的取值。
根据用户所想要的外轮廓形状就可以构造骨架线的插值点。如将插值点顺序相连就是我们所需要的骨架线,如图3所示加粗部分。曲线的段数根据需要而定,插值点的数量可以根据整体网格模型的平均边长确定,也可以根据具体需求而定。对于不同形状要求的骨架线,可能需要多条样条曲线进行拼接,后一条曲线起始点处的切矢可通过前一段曲线最后两个插值点来确定。这里需要注意的是,对于靠近模型两边界的离散点可以适当调整u的数值,使之尽量靠近边界从而保证最终的的模型缝合之后的光顺性,这里与边界的距离一般为平均的三角边长长度。
构造过渡曲面插值点在骨架线插值点构造好之后,就要在两条骨架线的插值点之间进一步设计离散点构造网格面。因为分段的数目远远小于模型边界上的顶点数,所以两条骨架线之间的离散点的构造,直接控制了这个过渡网格面的形状。本发明算法是一次性构造算法,为了保证和上边界有很好的形状上的连续性和光顺性。本发明提出一种基于边界边形状的过渡离散点构造算法。
两条骨架线和上边界的交点加上交点之间的顶点数作为两条骨架线对应插值点之间的离散点的数目。而每个离散点的位置由对应的边界上的顶点相对于两骨架线与上边界的交点的位置确定。结合图4,具体算法如下
设骨架线和上边界的交点为v0和vn,中间有n-1个边界上的顶点vj,其中j=1…n-1。
骨架线上的对应的两个离散点为s0和sn,pj为重心点v1c、边界上的分段点和中轴线法矢量Nor构成的平面。
则spi为直线方程spi-1+x(vi-vi-1)与Pi的交点,其中j=1…n,sp0=s0,从sp0开始依次计算得到sp1、sp2…,最后得到的spn与vn会有一定的位置差异,根据这个差别来调整的整体的误差,调整的方法为sp1j=spj+(vn-spn)/n,其中j=1…n-1,上面是从骨架线与边界的交点v0到交点vn的方向顺序计算的,为了进一步使形状逼近边界,再从交点vn到交点v0的方向计算得到sp2j,最终两插值点中间的离散点为sj=(sp1j+sp2j)/2,因为需要在下一步进行缝合操作,所以这些离散点并不包括位置在上下边界上的顶点v1i和v2i,从而使得离散点群与上下边界具有一定的距离来完成缝合。
如果我们仅仅从这些离散点直接构造三角网格曲面,那么每条骨架线两边的网格曲面片之间还会由于计算的误差而使得过渡不连续。所以还需要对两曲面之间进行如图5的类倒角过渡,其中左图为未进行圆角过渡,右图为进行圆角过渡后的示意图。
类圆角过渡就是在一条骨架线的两侧的离散点群上,从骨架线上的插值点向两侧按照一定的点数作为过渡线的起点和终点。用这两个点再次用弗格森曲线插值公式进行插值,此时两端点的切矢方向根据端点和端点外侧的点确定。进行过渡之后再三角化才会使得整体的曲面形状变得光顺,并且在大多数的情况要求下都可以不进行进一步的光顺操作。
边界的投影缝合当利用前面步骤产生的离散点进行三角网格面重构可以产生整体的过渡曲面,过渡面产生以后,需要将产生的网格曲面的边界和原来的网格曲面边界进行缝合。本发明中,整体过渡曲面的构造是通过分片构造完成的,所以边界的缝合可以有两种方法一种也是通过分段进行缝合;另外一种则是整体进行缝合。但整体进行缝合可能会由于误差或位置距离的累积而产生一些类似扭曲、错位等问题,需要进一步地优化。因为本发明是一种快速的过渡算法,在前面的步骤中提到为了进行快速缝合,已经使得构造的网格曲面的边界和原来的曲面边界的距离比较小了,基本和平均的三角网格的边的长度差不多。所以可以通过分段进行缝合,既可以快速缝合,也可以使得缝合一次性完成避免后续的修正。
分片缝合的边界端点的一个具体要求是两个边界的端点要尽可能的对齐。在确定类圆角过渡的过渡线的端点时候,也就确定了构造的网格曲面上的边界的分段状况。对于每段来说,需要在原来网格曲面的边界上确定分段状况。在根据模型边界进行分段的介绍中上边界的分段的等距点v1i和下边界上的分段的等距点v2i都是在边界边上某两个相邻顶点之间的连线上的,为了缝合必须将他们投影到两个相邻的顶点中的某一个顶点上。由于已经进行了圆角过渡,此时的分段既有在初始分段内部的部分,也有包括原始骨架线的过渡部分,所以从第二个分段曲面开始就要进行两个缝合操作如图6的不跨原始边界的内部插值点缝合和跨原始边界的过渡插值点缝合。为了能够尽量地对齐,使用下面的方法来确定边界上的分段端点顶点的位置。
求重心点v1c、中轴线矢量Nor和端点vs构成的平面和原网格模型的上边界边相交的点vs1,计算交点在所在边 上的位置 则vs对应的点为vs′=v1ip<0.5v1i+1p≥0.5]]>根据此种方法投影获得对应的端点vs,即可以使得端点尽量对齐,也可以保证每段顶点数目至少有一个,不会出现没有顶点而不能缝合的状况。
对于给定两排顶点,为了使缝合的三角片比较规整和对齐,本文提出一种投影缝合算法。首先利用投影顶点来判断需要连接形成如图7的一条边的一对顶点。具体方法如下对于第一、第二的两个顶点向量Vec1,Vec2,存储的顶点分别为 和 这里指的投影是通过一种算法使得第二个顶点向量Vec2里的每个点都对应第一个顶点向量Vec1里的一个点。最后的结果为 投影的方法可以有很多种,只要最后可以得到一对匹配的点即可,但投影方法的不同对最后形成的三角片会有很大的影响。本发明采用的是基于边长长度比率的投影方法。总体的思想是先计算第二个顶点向量Vec2里顺序连接各点形成的总的边长长度Len2,再依次算出点v20到v2i按照顺序连接形成的边长的长度占Len2的比率p2i。同理计算第一个顶点向量Vec1里的每个点的边长长度比率p1j,再根据每个点的边长长度比率p1j在总的边长长度Len2的比率p2i里面的位置关系确定上边界的等距点v1j和下边界的等距点v2k。当匹配点计算完毕后,我们首先可以根据这些匹配信息,生成如图7一些边。
从图7上可以看出,第一个顶点向量Vec1里每一个点都对应着第二个顶点向量Vec2里的一个点的位置索引,并且第一个顶点向量Vec1后一个点对应的索引值总是大于或者等于前一个点对应的索引值的。通过这些索引值的信息,就可以将从左到右依次生成三角片来完成缝合算法。
设Last和Current为第一个顶点向量Vec1顺序的前后两个点的下标。利用索引值进行缝合的具体算法流程图如图8.缝合后的效果如图9。运用这种分段投影缝合算法,既可以确保正确性和快速性,而且在口腔修复的精度要求范围内可以使得缝合可以一次性完成,无需进行额外的处理,提高了执行的效率。
权利要求
1.一种瓷附熔基底冠网格模型的过渡算法,其特征在于包括根据模型边界进行分段、利用弗格森曲线获取骨架线插值点、在骨架线之间构造过渡曲面插值点、边界的投影缝合;所述根据模型边界进行分段是将模型的上边界按边界边累加的长度进行等距分段,通过计算上边界的的总长度,根据需要分段的数目获得每段的等距长度后,从边界的有序的第一个顶点重新开始计算,在某两个相邻顶点构成的边上插入等距点v1i,使得从第一个顶点到v1i之间的累加边长为等距长度的i倍,从而获得上边界的等距点v10,v11,...,v1n-1,为了进一步适用下面的算法,还需要对整体模型构造一个近似的中轴线计算重心,点v1c=Σi=0n-1v1i/n;]]>则近似中轴线法矢为Nor=Σi=0n-1(v1c-v1i+1)×(v1i-1-v1c)/n,]]>其中上式中v1-1=v1n-1,v1n=v10,对于下边界,为了和上边界的等距点相对应,等距点则是根据Nor和v1i组成的平面与下边界的边界边进行相交计算从而得到与上边界的等距点相对应的下边界等距点v2i;上述式中的i为等距点的索引值,n为等距点的数目;所述获取骨架线插值点,是利用弗格森曲线获得;弗格森曲线的矢值形式 这里需要用到曲线的端点的切矢值,在模型中,对于上边界上的等距点v1i,它的法矢为v1iN,则它的切矢值为v1i′=v1N×(v1N×Nor),同理可以得到下边界分段点切矢值v2i′;上述式中的i为等距点的索引值,n为等距点的数目,u为一段弗格森曲线中自变量在
区间上的取值;所述构造过渡曲面插值点是将两条骨架线和上边界的交点加上交点之间的原模型边界顶点数作为两条骨架线对应插值点之间的离散点的数目,每个离散点的位置由对应的边界上的顶点相对于两骨架线与上边界的交点的位置确定,具体算法如下设骨架线和上边界的交点为v0和vn,中间有n-1个边界上的顶点vjj=1…n-1,骨架线上的对应的两个离散点为s0和sn,pj为重心点v1c、边界上的分段点和中轴线法矢量Nor构成的平面,spi为直线方程spi-1+x(vi-vi-1)与Pi的交点,其中j=1…n,sp0=s0,从sp0开始依次计算得到sp1、sp2…,最后得到的spn与vn会有一定的位置差异,根据这个差别来调整的整体的误差,调整的方法为sp1j=spj+(vn-spn)/n j=1…n-1,上面是从骨架线与边界的交点v0到交点vn的方向顺序计算的,为了进一步使形状逼近边界,再从交点vn到交点v0的方向计算得到sp2j,最终两插值点中间的离散点为sj=(sp1j+sp2j)/2,从骨架线上的插值点向两侧按照一定的点数作为取相应的离散点作为过渡线的起点和终点,用这两个点再次用弗格森曲线插值公式进行插值,此时两端点的切矢方向根据端点和端点外侧的点确定;所述的边界投影缝合,是通过分段进行缝合的一种方法,将上边界的分段的等距点v1i和下边界的分段的等距点v2i分别投影到其相邻的原模型边界顶点中的某一个顶点上,为对齐每段在离散点的端点和在边界上的端点,采用下面的方法来确定边界上的分段端点顶点的位置求重心点v1c、中轴线矢量Nor和端点vs构成的平面和原网格模型的上边界边相交的点vs1,计算交点在所在边 上的位置 则vs对应的点为vs′=v1ip<0.5v1i+1p≥0.5]]>根据此种方法投影获得对应的端点vs′,即可以使得端点尽量对齐,也可以保证每段顶点数目至少有一个,不会出现没有顶点而不能缝合的状况;对于给定两排顶点,为了使缝合的三角片比较规整和对齐,采用一种投影缝合算法,首先利用投影顶点来判断需要连接形成一条边的一对顶点,具体方法如下对于第一、第二的两个顶点向量Vec1,Vec2,存储的顶点分别为 和 这里指的投影是通过一种算法使得第二个顶点向量Vec2里的每个点都对应第一个顶点向量Vec1里的一个点,最后的结果为 投影的方法采用的是基于边长长度比率的投影方法,先计算第二个顶点向量Vec2里顺序连接各点形成的总的边长长度Len2,再依次算出点v20到v2i按照顺序连接形成的边长的长度占总的边长长度Len2的比率p2i,同理计算第一个顶点向量Vec1里的每个点的边长长度比率p1j,再根据每个点的边长长度比率p1j在总的边长长度Len2的比率p2i里面的位置关系确定上边界的等距点v1j和下边界的等距点v2k,最终根据已确定的投影关系生成若干三角片完成缝合。
全文摘要
一种瓷附熔基底冠网格模型的过渡算法,属于牙体修复体网格模型的过渡算法。本过渡算法,包括根据模型边界进行分段、利用弗格森曲线获取骨架线插值点、在骨架线之间构造过渡曲面插值点、边界的投影缝合四个步骤。本发明的过渡算法,不仅能够提高过渡面生成的速度,同时还具有一定的适应性,能获得高质量的牙体修复体数据,在计算机辅助口腔修复设计、医学图像系统等领域有着重要的应用价值。
文档编号G06T19/00GK101079156SQ20071002482
公开日2007年11月28日 申请日期2007年6月29日 优先权日2007年6月29日
发明者廖文和, 戴宁, 聂欣, 程筱胜 申请人:南京航空航天大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1