论文部分内容阅读
在前人工作的基础上,本文研究了两片及多片张量积B样条曲面光滑拼接的算法,并以此为基础,给出了N面角点处曲面实现G1连续的算法。用双三次张量积B样条曲面给出了计算实例,验证了算法的可行性。
根据前人已有的结论[3],[7],[8],[10],两张B样条曲面,若它们在公共边界上各自的跨界导矢及它们沿公共边界的切矢共面,则它们是G1连续的。
那么,现实中如何构造光滑连接的曲面呢?对于这一问题的已有结论有:[6]中介绍了两片Bézier曲面如何实现G1拼接,并研究了N面角点处光滑曲面的构造,给出了N=4时光滑曲面的构造方法。通过令拼接函数中的一个等于零,实现了四面角点处光滑曲面的构造。但对B样条曲面的拼接方法,没有讨论。[7],[8]等研究了双三次张量积B样条曲面的G1拼接算法,并指出对于任意拓扑区域上的光滑曲面,至少需要用双五次B样条来构造。车翔玖[3]研究了任意次数、具有任意节点向量的NURBS曲面的拼接问题,指出了对特殊的拼接函数,两张G1连续的NURBS曲面的公共边界一定是整体k次多项式曲线。
本文在上述研究成果的基础上,详细研究了两片张量积B样条曲面间实现G1,G2拼接的算法(第三章第一节,第二节)。利用[3]中指出的B样条曲面光滑拼接的特殊性,将拼接方程中形式不统一的部分用反求B样条曲线控制顶点的方法化为具有统一的形式,从而无需用到节点插入和节点消去算法,简化了算法的复杂度,减少了计算的时间。
以此为基础,我们给出了奇数面角点(以三面为例)及偶数面角点(以四面为例)实现G1拼接的算法(第三章第三节)。
当N是奇数时,问题是容易解决的。这时需要求解的线性方程组的系数矩阵都非奇异的,故可以直接解出。
但当N是偶数的时候,要解的线性方程组中有一个的系数矩阵是奇异的,故要想使其有解,此方程组的右端必须满足一定的条件。通过研究这两个线性方程组中的一个发现:其本质不过是说各个曲面片在公共角点处的切矢是共面的!利用这个条件,我们将方程组中的每个方程所包含的三个拼接函数化成由其中之一所决定的,即将原来的三个自由选取的拼接函数变为只有一个是可以自由选取,而另外两个拼接函数是由这个拼接函数以及公共角点处各条边界曲线的切矢之间的关系所决定的。从而使问题中不确定量大大减少,以便集中精力于第二个方程组的解决。以此为基础,将第二个方程组有解的充分必要条件化简为关于每条公共边界曲线切矢点和曲率点的线性方程。此方程中待求的向量一共有N个,其中有(N-1)个可以自由选取。从而,解决了N是偶数时曲面的光滑拼接问题。本文的算法是对[6]中所提出的算法的发展。
本文主要的创新之处有,首先,利用反求B样条曲线的控制顶点的方法,使拼接方程中的各条曲线具有统一的形式(第三章第一节),从而为拼接打下扎实的基础。其次,在对N面角点进行拼接的时候,首先利用角点处每条公共边界线的切矢间的关系,将原来的对三个拼接函数的确定问题化为对一个拼接函数的确定问题,为进一步对N面角点进行拼接做准备(第三章第三节)。继而,给出了N是偶数时各条公共边界曲线的切矢点和曲率点的确定方法(第三章第三节)。
于丕强[10]中指出,构造任意拓扑区域上的光滑曲面,至少需要双五次B样条曲面。用类似对双三次张量积B样条曲面进行拼接的方法,我们给出了应用双五次B样条曲面对N面角点进行拼接的算法(第四章第二节)。利用双五次张量积B样条曲面的光滑拼接的算法(算法8)即可构造出任意拓扑结构区域上的光滑曲面。