Print

发布时间: 2016-12-25
摘要点击次数:
全文下载次数:
DOI: 10.11834/jig.20161213
2016 | Volumn 21 | Number 12




    计算机图形学    




  <<上一篇 




  下一篇>> 





形状可调插值曲线曲面的参数选择
expand article info 严兰兰, 李水平
东华理工大学理学院, 南昌 330013

摘要

目的 因大多数插值基函数中的参数都是全局参数,从而导致插值曲线曲面的形状无法进行局部调整。另外,当插值曲线曲面形状可调时,也存在如何选择参数才能获得形状较为理想的曲线曲面的问题,为此给出一种无需反求控制顶点、包含局部形状调整参数、具有显式表达式、能重构部分二次曲线曲面的插值曲线曲面构造方法,同时给出易于使用的形状参数确定方案。 方法 基于经典3次Hermite插值曲线的Bernstein基函数表达形式,将其中的Bernstein基换成已证明具有全正性的一组三角基函数,根据三角基的端点性质调整曲线表达式以保证其插值性,然后设定插值数据点处的导向量,在其中引入参数,并保证相邻曲线段之间的连续性,得到了一种新的三角基插值曲线。 结果 新曲线可以整理成以待插值数据点为控制顶点与一组插值基函数的线性组合形式,插值基表达式简单,插值曲线含一组局部形状调整参数,一个参数的改变只影响一条曲线段的形状,相邻曲线段之间G1连续,曲线可以重构椭圆。根据不同目标给出了3种用于确定曲线中形状参数的准则,每种准则都提供了可以直接使用的公式。相应的插值曲面具有与插值曲线类似的性质。 结论 形状参数选取准则的给出使含参数插值曲线曲面的设计由随意变为确定,这使得采用本文方法更易于得到满意的结果。本文所给插值基函数的构造方法具有一般性,可以采用相同的思路构造其他函数空间上性质类似的插值基。

关键词

分段曲线曲面; 插值; 三角基; 形状参数; 参数选择

Parameter selection of shape-adjustable interpolation curve and surface
expand article info Yan Lanlan, Li Shuiping
College of Science, East China University of Technology, Nanchang 330013, China
Supported by: Supported by:National Natural Science Foundation of China(11261003); Natural Science Foundation of Jiangxi Province, China(20161BAB211028)

Abstract

Objective For the parameters in most of the interpolation basis functions are global parameters, resulting in the shape of the interpolation curves and surfaces cannot be adjusted locally. In addition, when the interpolation curves and surfaces are shape adjustable, we need to consider how to choose the parameters to obtain ideal shape. For this, this paper proposes a new construction method for interpolation curve and surface. This method has the following advantages:it requires no reverse calculation of control points, it contains a local shape parameter, it has explicit expression, and it can reconstruct certain conic sections. We also aim to present a shape parameter selection scheme that can be easily applied. Method The method is based on the expression of the classical cubic Hermite interpolation curve in Bernstein basis form. The Bernstein basis functions are substituted by a set of trigonometric basis functions that are proven to be completely positive in the literature. To ensure interpolation property, the expression of the curve is adjusted according to the endpoint property of the trigonometric basis. The derivate vectors at the interpolation data are assigned, and parameters are incorporated in them. The continuity between the adjacent curve segments is also considered. A new interpolation curve based on trigonometric basis is obtained. Result The new curve can be rearranged as the linear combination of the interpolation data and a set of interpolation basis functions. The interpolation basis has a simple expression. The interpolation curve contains a set of local shape parameters. The change of one parameter can only affect the shape of one curve segment. The adjacent two curve segments are G1 continuous. The curve can reconstruct an ellipse. According to a different goal, three criteria for the selection of the shape parameter are provided, and each criterion has a formula that can be used directly. The corresponding interpolation surface has a similar property with the interpolation curve. Conclusion The parameter selection scheme transforms the design of the interpolation curve with parameter change from random to determinate. A satisfactory result can be obtained through this method. The construction method of the interpolation basis is general and can be used to construct other basis functions with similar properties.

Key words

piecewise curve and surface; interpolation; trigonometric basis; shape parameter; parameter selection

0 引 言

在计算机辅助几何设计(CAGD)的实践中,经常遇到要求构造插值曲线与插值曲面,以用于已有曲线曲面的形状表示。即使对于形状设计,插值方法仍然有其实际意义。显然大致给定位于曲线上的一些点,要比直接给出不位于曲线上的控制顶点,更加符合设计人员的意愿,也更容易给出。因为在设计人员头脑里直接考虑的是曲线的大致形状,而并非控制多边形的形状特征[1]

以曲线为例,点数据插值问题通常描述为:从数据点Pi以及相应的参数值ui出发,寻找一条曲线在ui处经过点Pi。解决这个问题较传统的方式之一是寻找一个经过这些点的插值多项式[2]。尽管插值多项式总是存在,例如Lagrange插值,但高次多项式插值可能会出现震荡,即产生龙格现象。另外,多项式插值不具备CAGD中较为重要的局部形状控制能力。为了避免这些不足,采用分段低次多项式插值是一个较好的选择。在CAGD中最常用的3次B样条曲线,具有许多利于形状设计的优良性质,例如局部控制性、自动光滑性,但遗憾的是它不经过任何控制顶点。为了寻找插值给定点集的3次B样条曲线,需要解方程组来反求控制顶点。这种方法不仅计算复杂,而且一个数据点的变动就会造成反求过程的重新进行,导致整条B样条曲线的全局改变。换句话说,虽然B样条曲线具有的良好局部性、逼近性,但基于它的插值曲线却不再具备相应于数据点的局部形状控制性。

除了多项式插值以外,也有学者提出了一些非多项式插值方法,例如插值细分方案[3-6]以及插值型几何迭代法[7-9]。细分方法适用于任意拓扑结构,几何迭代法具有明确的几何意义,这两种方法都具有数值计算稳定、易于编程实现等优点。然而美中不足的是,在细分方法和几何迭代法中,极限曲线曲面的显式表达式难以给出。还有学者通过构造有理插值样条来实现插值[10-14],并对插值曲线的保形性进行分析。另外还有一些文献直接构造端点性质特殊的调配函数[15-18],称为插值基函数,以待插值数据点为控制顶点与基函数做线性组合来生成插值曲线和插值曲面。构造有理插值样条和插值基函数的方法都可以有效防止龙格现象的发生,并且可以避免反求控制顶点的运算。

在采用构造插值基函数来定义插值曲线曲面的方法中,很多插值基函数都含形状参数,这为最终的插值曲线曲面提供了形状调整的能力。但注意到大多数插值基函数中的参数都是全局参数,这导致插值曲线曲面的形状无法进行局部调整。另外,当插值曲线曲面形状可调时,到底选择什么参数才能获得形状较为理想的曲线曲面呢?对于这个问题,很少有文献展开讨论。

为此本文提出一种构造含局部形状调整参数的插值曲线和插值曲面的方法,同时给出形状参数的选取准则,以保证插值曲线曲面的形状不仅局部可调,而且有实用的参照标准用以控制曲线曲面的形状。

1 插值基函数

1.1 基函数构造思路

在众多函数类型中,多项式函数计算最简单,但在CAGD中,用三角函数作为基函数可以扩大曲线曲面的形状表示范围,因此本文考虑用三角函数来构造插值曲线曲面。

文献[19]构造了一种带一个形状参数的3次三角多项式曲线,作为其特例,该文献还给出了一种3次三角Bézier曲线,其基函数为

$\left\{ \begin{align} & {{T}_{0}}\left( t \right)={{\left( 1-s \right)}^{2}}\left( 1-\lambda s \right) \\ & {{T}_{1}}\left( t \right)=s\left( 1-s \right)\left( 2+\lambda -\lambda s \right) \\ & {{T}_{2}}\left( t \right)=c\left( 1-c \right)\left( 2+\lambda -\lambda c \right) \\ & {{T}_{3}}\left( t \right)={{\left( 1-c \right)}^{2}}(1-\lambda c) \\ \end{align} \right.$ (1)

式中,s:=sin(t),c:=cos(t),t∈[0,$\frac{\pi }{2}$],λ∈[-1,1]。文献[20]将式(1) 中T2(t)T3(t)表达式中的参数λ改为μ,从而将式(1) 扩展为含两个参数的基函数。文献[21]证明了当λ,μ∈(-2,1]时,扩展后的基函数形成三角函数空间Tλ,μ:=Span{1,s2,(1-s)2(1-λs),(1-c)2(1-μc)}中的最优规范全正基。

对于式(1) 所给基函数,λ的取值决定其次数,当λ=0时次数最低,计算最简单。在式(1) 中取λ=0,得到一组固定的2次三角基函数

$\left\{ \begin{align} & {{T}_{0}}\left( t \right)={{\left( 1-s \right)}^{2}} \\ & {{T}_{1}}\left( t \right)=2s\left( 1-s \right) \\ & {{T}_{2}}\left( t \right)=2c\left( 1-c \right) \\ & {{T}_{3}}\left( t \right)={{\left( 1-c \right)}^{2}} \\ \end{align} \right.$ (2)

为了方便,将式(2) 所给基函数称为T-Bézier基。

T-Bézier基具有非负性、规范性、对称性,其在定义区间端点处的函数值、导数值为

$\eqalign{ & {T_i}\left( 0 \right) = \left\{ {\matrix{ 1 & {i = 0} \cr 0 & {i = 1,2,3} \cr } } \right. \cr & {T_i}\left( {{\pi \over 2}} \right) = \left\{ {\matrix{ 0 & {i = 0,1,2} \cr 1 & {i = 3} \cr } } \right. \cr & T{\prime _i}\left( 0 \right) = \left\{ {\matrix{ { - 2} & {i = 0} \cr 2 & {i = 1} \cr 0 & {i = 2,3} \cr } } \right. \cr & T{\prime _i}\left( {{\pi \over 2}} \right) = \left\{ {\matrix{ 0 & {i = 0,1} \cr { - 2} & {i = 2} \cr 2 & {i = 3} \cr } } \right.{\rm{ }} \cr} $ (3)

由文献[21]中的结论可以推知T-Bézier基为函数空间

$T: = Span\{ 1,{s^2},{\left( {1 - s} \right)^2},{\left( {1 - c} \right)^2}\} $

中的最优规范全正基。因此由T-Bézier基定义的曲线和Bézier曲线一样具有较好的保形性,可以很好的模拟控制多边形的形态。

经典的3次Hermite插值不仅可以插值点数据,而且还可以插值数据点处的导向量数据。先考虑最简单的情形,给定两个点P0P1,两个导向量D0D1,设置t0=0t1=1,可以找到一条3次多项式曲线r(t)插值这些数据,即满足r(0) =P0,r(1) =P1,r'(0) =D0,r'(1) =D1,曲线r(t)可以写成3次Bézier曲线形式

$\eqalign{ & r\left( t \right) = {P_0}B_0^3\left( t \right) + \left( {{P_0} + {1 \over 3}{D_0}} \right)B_1^3\left( t \right) + \cr & \left( {{P_1} - {1 \over 3}{D_1}} \right)B_2^3\left( t \right) + {P_1}B_3^3(t) \cr} $ (4)

式中,$B_i^3\left( t \right) = {{3!} \over {i!\left( {3 - i} \right)!}}{t^i}{\left( {1 - t} \right)^{3 - i}}\left( {i = 0,1,2,3} \right)$ 为3次Bernstein基函数。

注意到T-Bézier基和3次Bernstein基函数在性质上的相似性,考虑将式(4) 中的基函数换成T-Bézier基,用三角函数来构造插值曲线。

同样考虑两个点P0P1,两个导向量D0D1,设置t0=0t1=${\pi \over 2}$。由式(3) 所给T-Bézier基的端点信息可知,曲线

$\eqalign{ & p\left( t \right) = {P_0}{T_0}\left( t \right) + \left( {{P_0} + {1 \over 2}{D_0}} \right){T_1}\left( t \right) + \cr & \left( {{P_1} - {1 \over 2}{D_1}} \right){T_2}\left( t \right) + {P_1}{T_3}(t) \cr} $ (5)

满足p(0) =P0,p(${\pi \over 2}$) =P1,p'(0) =D0,p'(${\pi \over 2}$) =D1,即p(t)插值于点数据以及对应的导向量数据。

现在考虑一般情形。给定点数据Pj,导向量数据Dj,以及对应的参数数据uj,其中j=1,2,…,n。将式(5) 扩展,可得插值于以上数据的分段曲线的第i段为

$\eqalign{ & {q^*}\left( u \right) = p_i^*\left( t \right) = {P_i}{T_0}\left( t \right) + ({P_i} + {{{h_i}} \over \pi }{D_i}){T_1}\left( t \right) + \cr & ({P_{i + 1}} - {{{h_i}} \over \pi }{D_{i + 1}}){T_2}\left( t \right) + {P_{i + 1}}{T_3}(t) \cr} $ (6)

式中,$u \in \left[ {{u_i},{u_{i + 1}}} \right],t = {\pi \over 2}\cdot{{u - {u_i}} \over {{h_i}}},{h_i} = {u_{i + 1}} - {u_i},i = 1,2, \ldots ,n - 1$。容易验证曲线q*(u)整体C1连续。

曲线q*(u)的位置、形状是固定的,若希望其形状可调,则需要在其中加入调节参数。加入参数的途径可以是在端点位置、端点切向量处加入。但要想使曲线无论怎样调节,都具有插值性,则曲线的端点位置必须固定,因此只能考虑在端点切向量处加入调节参数。

当曲线中含有调节参数时,通常希望可以依据一些准则来帮助确定比较合适的参数。由于插值曲线是分段构造的,为了方便,希望准则也是分段给出的。而准则依赖于各段控制顶点的坐标,这样一来,不同段计算出的参数一般不一样,因此曲线中的调节参数必须是局部的。若希望含有局部调节参数的插值曲线依然整体C1连续,则每一段中至少应包含两个参数。以第i段为例,该段涉及两个决定切向量的数据DiDi+1,若在Di中加入了局部调节参数αi,则Di+1中必须加入参数αi+1。但注意到准则的局部性,第i段计算出的αi+1可能与第i+1段计算出的αi+1并不相同,所以依据准则分段确定参数取值的方式往往无法保证曲线整体C1连续(更高阶的参数连续性也是如此),因此只能将参数连续松弛为几何连续。

根据上述分析,同时考虑到计算的方便性,在每一段中设置一个局部形状参数,保持插值曲线整体G1连续。为此,最简单有效的方式是在第i段插值曲线中将DiDi+1分别设置为αi(Pi+1-Pi-1)αi(Pi+2-Pi),其中参数αi>0。由于是几何连续,所以不用考虑整体参数与局部参数之间的变换带来的系数,因此可以将式(6) 中DiDi+1前面的系数改为式(5) 中D0D1前面的系数。即设插值曲线的第i段为

$\eqalign{ & q\left( u \right) = {p_i}\left( t \right) = \cr & {P_i}{T_0}\left( t \right) + \left[ {{P_i} + {1 \over 2}{\alpha _i}\left( {{P_{i + 1}} - {P_{i1}}} \right)} \right]{T_1}\left( t \right) + \cr & \left[ {{P_{i + 1}} - {1 \over 2}{\alpha _i}\left( {{P_{i + 2}} - {P_i}} \right)} \right]{T_2}\left( t \right) + {P_{i + 1}}{T_3}\left( t \right) \cr} $ (7)

式中,$u \in \left[ {{u_i},{u_{i + 1}}} \right],t = {\pi \over 2}\cdot{{u - {u_i}} \over {{h_i}}},{h_i} = {u_{i + 1}} - {u_i},i = 1,2, \ldots ,n - 1$

1.2 基函数及其性质

为了便于分析插值曲线性质,将式(7) 整理成插值数据点与插值基函数线性组合的形式,结果为

$\eqalign{ & {p_i}\left( t \right) = {P_{i - 1}}\left[ { - {1 \over 2}{\alpha _i}{T_1}\left( t \right)} \right] + \cr & {P_i}\left[ {{T_0}\left( t \right) + {T_1}\left( t \right) + {1 \over 2}{\alpha _i}{T_2}\left( t \right)} \right] + \cr & {P_{i + 1}}\left[ {{1 \over 2}{\alpha _i}{T_1}\left( t \right) + {T_2}\left( t \right) + {T_3}\left( t \right)} \right] + \cr & {P_{i + 2}}\left[ { - {1 \over 2}{\alpha _i}{T_2}\left( t \right)} \right] \buildrel \Delta \over = {P_{i - 1}}{N_{i,0}}\left( t \right) + {P_i}{N_{i,1}}\left( t \right) + \cr & {P_{i + 1}}{N_{i,2}}\left( t \right) + {P_{i + 2}}{N_{i,3}}(t) \cr} $ (8)

式中,函数组{Ni,0(t),Ni,1(t),Ni,2(t),Ni,3(t)}称为α插值基函数。由式(2) (8) 可得α插值基函数的表达式为

$\left\{ \matrix{ {N_{i,0}}\left( t \right) = - {\alpha _i}s\left( {1 - s} \right) \hfill \cr {N_{i,1}}\left( t \right) = {c^2} + {\alpha _i}c\left( {1 - c} \right) \hfill \cr {N_{i,2}}\left( t \right) = {s^2} + {\alpha _i}s\left( {1 - s} \right) \hfill \cr {N_{i,3}}\left( t \right) = - {\alpha _i}c(1 - c) \hfill \cr} \right.$ (9)

式中,s:=sin(t),c:=cos(t),t∈[0,${\pi \over 2}$],αi>0。

易知α插值基函数具有以下性质:

1) 规范性,$\sum\limits_{j = 0}^3 {{N_{i,j}}\left( t \right) = 1} $

2) 对称性,${N_{i,j}}({\pi \over 2} - t) = {N_{i,3 - j}}\left( t \right),j = 0,1,2,3$

3) 端点性质,在定义区间的端点处,有

$\eqalign{ & {N_{i,j}}\left( 0 \right) = \left\{ {\matrix{ 1 & {j = 1} \cr 0 & {j = 0,2,3} \cr } } \right. \cr & {N_{i,j}}\left( {{\pi \over 2}} \right) = \left\{ {\matrix{ 0 & {j = 0,1,3} \cr 1 & {j = 2} \cr } } \right. \cr & N{\prime _{i,j}}\left( 0 \right) = \left\{ {\matrix{ { - {\alpha _i}} & {j = 0} \cr {{\alpha _i}} & {j = 2} \cr 0 & {j = 1,3} \cr } } \right. \cr & N{\prime _{i,j}}\left( {{\pi \over 2}} \right) = \left\{ {\matrix{ 0 & {j = 0,2} \cr { - {\alpha _i}} & {j = 1} \cr {{\alpha _i}} & {j = 3} \cr } } \right. \cr} $ (10)

2 插值曲线

2.1 曲线的构造与性质

在第1节中,基于3次Hermite插值曲线的构造方法,借助T-Bézier基给出了一种具有插值性质的曲线,如式(7) 或式(8) 所示。由第1节的分析可知

${p_i}\left( 0 \right) = {P_i},{p_i}\left( {{\pi \over 2}} \right) = {P_{i + 1}}$

即曲线段pi(t)插值于两个内控制顶点,而整条曲线q(u)则经过除首末点以外的所有控制点。

根据以上结论,分析如何解决点数据插值问题。

给定2维或3维空间中待插值数据点Pj以及对应的参数值uj,其中j=1,2,…,n,u1<u2<…<un,并且P1≠Pn。要想构造一条光滑曲线顺序通过所有数据点(在参数uj处经过点Pj),可以先添加两个辅助点P0Pn+1,然后以点Pj(j=0,1,…,n+1) 为控制顶点定义n-1条曲线段

${p_i}\left( t \right) = \sum\limits_{j = 0}^3 {{N_{i,j}}} \left( t \right){P_{i + j - 1}}$ (11)

式中,t∈[0,${{\pi \over 2}}$],i=1,2,…,n-1,Ni,j(t)(j=0,1,2,3) α插值基函数。所有曲线段形成一条分段组合曲线

$q\left( u \right) = {p_i}\left( {{\pi \over 2}\cdot{{u - {u_i}} \over {{u_{i + 1}} - {u_i}}}} \right)$ (12)

式中,u∈[ui,ui+1],i=1,2,…,n-1。显然曲线q(u)满足插值目标q(uj)=Pjj=1,2,…,n。将式(11) 所给曲线pi(t)称为α插值曲线段,式(12) 所给曲线q(u)称为α插值曲线。

当所给数据点Pj(j=1,2,…,n)形成封闭多边形,即P1=Pn时,按照上面在首、末位置各加一个辅助点的方法将产生一条封闭的插值曲线,但该曲线在闭合点处通常只有位置连续,并不光滑。在此情形下,若希望产生封闭且光滑的插值曲线,应该在最后一个数据点之后添加两个辅助点Pn+1、Pn+2,并使Pn+1=P2,Pn+2=P3

α插值基函数的性质,可以推出α插值曲线具有以下性质:

1) 几何不变性与仿射不变性。由于α插值基函数具有规范性,故α插值曲线的形状与坐标系的选取无关;欲获得经仿射变换后的α插值曲线,只需对控制多边形执行相同变换再定义曲线即可。

2) 对称性。由于α插值基函数具有对称性,故当辅助点和参数αi都保持不变时,将数据点的顺序取反,并不会改变插值曲线的形状,改变的只是曲线的走向。

3) 局部控制性。由于α插值曲线具有与3次B样条曲线相同的结构,故改变一个数据点,至多只有改变4条曲线段的形状。

4) 局部形状可调性。参数αi可用于在不改变插值数据点和辅助点的情况下改变插值曲线的形状。改变参数αi的值,只有第i段插值曲线的形状会发生改变。

5) 连续性。由α插值基函数的端点性质式(10) ,以及α插值曲线的表达式(12) 可以推出

$\eqalign{ & q\left( {u_i^ + } \right) = q\left( {u_i^ - } \right),q\prime \left( {u_i^ + } \right) = \cr & {{\left( {{u_i} - {u_{i - 1}}} \right){\alpha _i}} \over {\left( {{u_{i + 1}} - {u_i}} \right){\alpha _{i - 1}}}}q\prime (u_i^ - ) \cr} $

这表明α插值曲线整体G1连续。

2.2 曲线的参数选择

理论上讲,无论参数αi取何值,都能保证α插值曲线的插值目标。但如果希望精确控制插值曲线的形状,则需要根据某种准则来计算αi的值。因为αi是局部参数,所以可以分段确定其值,这一特点简化了参数的选择问题。

由于平面曲线可以看做空间曲线的特例,因此下面将以空间插值曲线为例来给出参数选取准则。

将式(11) 所给α插值曲线段记做pi(t)=[pix(t),piy(t),piz(t)]T设其控制顶点坐标为Pj=(xj,yj,zj),j=i-1,i,i+1,i+2,记

$\left\{ \matrix{ {X_i} = {\left[ {{x_{i - 1}},{x_i},{x_{i + 1}},{x_{i + 2}}} \right]^T} \hfill \cr {Y_i} = {\left[ {{y_{i - 1}},{y_i},{y_{i + 1}},{y_{i + 2}}} \right]^T} \hfill \cr {Z_i} = {\left[ {{z_{i - 1}},{z_i},{z_{i + 1}},{z_{i + 2}}} \right]^T} \hfill \cr} \right.$ (13)

为了确定合适的参数αi,下面给出3个准则。

准则1 (近似最短弧长),建立目标函数

${f_i} = \int_0^1 {\left\{ {{{\left[ {p_i^{x\prime }\left( t \right)} \right]}^2} + {{\left[ {p_i^{y\prime }\left( t \right)} \right]}^2} + {{\left[ {p_i^{z\prime }\left( t \right)} \right]}^2}} \right\}} dt$

将使fi获得最小值的参数取为αi。直接计算得出

${\alpha _i} = {{{f_1}} \over {{f_2} + {f_3}}}$ (14)

式中

$\left\{ \matrix{ {f_1} = (3\pi - 8)(X_i^TA{X_i} + Y_i^TA{Y_i} + Z_i^TA{Z_i}) \hfill \cr {f_2} = 2(3\pi - 8)(X_i^TB{X_i} + Y_i^TB{Y_i} + Z_i^TB{Z_i}) \hfill \cr {f_3} = 2(3\pi - 10)(X_i^TC{X_i} + Y_i^TC{Y_i} + Z_i^TC{Z_i}) \hfill \cr} \right.$

fj(j=1,2,3) 表达式中的Xi、YiZi由式(13) 给出,矩阵A、BC分别为

$\eqalign{ & \cr & A = \left( {\matrix{ 0 & 1 & { - 1} & 0 \cr 0 & 1 & { - 2} & { - 1} \cr 0 & 0 & 1 & 1 \cr 0 & 0 & 0 & 0 \cr } } \right) \cr & B = \left( {\matrix{ 1 & 0 & { - 2} & 0 \cr 0 & 1 & 0 & { - 2} \cr 0 & 0 & 1 & 0 \cr 0 & 0 & 0 & 1 \cr } } \right) \cr & C = \left( {\matrix{ 0 & 1 & 0 & { - 1} \cr 0 & 0 & { - 1} & 0 \cr 0 & 0 & 0 & 1 \cr 0 & 0 & 0 & 0 \cr } } \right) \cr} $

准则2 (近似最小能量),建立目标函数

${g_i} = \int_0^1 {\left\{ {{{\left[ {p_i^{x''}\left( t \right)} \right]}^2} + {{\left[ {p_i^{y''}\left( t \right)} \right]}^2} + {{\left[ {p_i^{z''}\left( t \right)} \right]}^2}} \right\}dt} $

将使gi获得最小值的参数取为αi。直接计算得出

${\alpha _i} = {{{g_1}} \over {{g_2} + {g_3}}}$ (15)

式中

$\left\{ \begin{align} & {{g}_{1}}=4(3\pi -2)(X_{i}^{T}A{{X}_{i}}+Y_{i}^{T}A{{Y}_{i}}+Z_{i}^{T}A{{Z}_{i}}) \\ & {{g}_{2}}=(15\pi -16)(X_{i}^{T}B{{X}_{i}}+Y_{i}^{T}B{{Y}_{i}}+Z_{i}^{T}B{{Z}_{i}}) \\ & {{g}_{3}}=4(6\pi -11)(X_{i}^{T}C{{X}_{i}}+Y_{i}^{T}C{{Y}_{i}}+Z_{i}^{T}C{{Z}_{i}}) \\ \end{align} \right.$

gj(j=1,2,3) 表达式中的XiYiZi由式(13) 给出,矩阵ABC与式(14) 中相同。

准则3 (两种准则综合)。将准则1和准则2给出的参数分别记作αi1αi2,将式

${\alpha ^3}_i = k_i^1\alpha _i^1 + k_i^2\alpha _i^2$ (16)

给出的参数取为αi,式中组合系数kij≥0,j=1,2

按准则1所给参数绘制的插值曲线偏向紧绷,按准则2绘制的曲线相对松弛,式(16) 中系数ki1ki2的作用就是调节曲线的平滑度,对准则1和准则2的结果做进一步的修正与改善。

对于空间插值曲线而言,可直接使用式(14) —(16) 。对于平面插值曲线而言,因为数据点不存在竖坐标,所以在使用式(14) —(16) 时,需将式中的Zi取为0,也就是略去所有含Zi的项。

给定平面上7个待插值的数据点(3,${5 \over 2}$) ,(${1 \over 2}$,4) ,(-1,${4 \over 5}$) ,(1,0) ,(3,1) ,(1,2) ,(0,1) ,取辅助点(3,2) ,(1,${1 \over 2}$) 。由式(14) 得出$\left\{ {\alpha _i^1} \right\}_{i = 1}^6 = \left\{ {{{949} \over {3{\rm{ }}009}},{{2{\rm{ }}207} \over {6{\rm{ }}239}},{{713} \over {3767}},{{577} \over {2{\rm{ }}249}},{4 \over {13}},{1 \over 5}} \right\}$;由式(15) 得出$\left\{ {\alpha _i^2} \right\}_{i = 1}^6 = \left\{ {{{913} \over {2051}},{{948} \over {1691}},{{785} \over {2289}},{{239} \over {502}},{{744} \over {1267}},{{913} \over {2392}}} \right\}$;取$k_i^1 = {1 \over 3},k_i^1 = {2 \over 3},i = 1,2, \ldots ,6$,由式(16) 得出$\left\{ {\alpha _i^3} \right\}_{i = 1}^6 = \left\{ {{{1{\rm{ }}315} \over {3{\rm{ }}272}},{{442} \over {899}},{{222} \over {761}},{{525} \over {1{\rm{ }}303}},{{373} \over {755}},{{1{\rm{ }}175} \over {3{\rm{ }}659}}} \right\}$。相应于这3种结果的α插值曲线如图 1所示。

图 1 平面插值曲线
Fig. 1 Planar interpolation curve ((a) criterion one; (b) criterion two; (c) criterion three)

给定空间中形成封闭多边形的待插值数据点(0,0,6) ,(-${1 \over 2}$,0,${5 \over 3}$) ,(-2,0,1) ,(-2,-5,0) ,(2,-5,0) ,(${9 \over 2}$,0,1) ,(2,0,${5 \over 3}$) ,(0,0,6) ,取辅助点(-${1 \over 2}$,0,${5 \over 3}$) ,(-2,0,1) 。由式(14) 计算出$\left\{ {\alpha _i^1} \right\}_{i = 1}^6 = \left\{ {{{184} \over {2{\rm{ }}067}},{{631} \over {1{\rm{ }}526}},{4 \over {21}},{{799} \over {1{\rm{ }}977}},{{204} \over {1{\rm{ }}811}},{{1{\rm{ }}562} \over {4{\rm{ }}113}},{{579} \over {1{\rm{ }}609}}} \right\}$;由式(15) 得出$\left\{ {\alpha _i^2} \right\}_{i = 1}^6 = \left\{ {{{415} \over {3{\rm{ }}161}},{{599} \over {1{\rm{ }}107}},{{269} \over {740}},{{269} \over {740}},{{1{\rm{ }}385} \over {2{\rm{ }}589}},{{361} \over {1{\rm{ }}963}},{{1{\rm{ }}363} \over {2{\rm{ }}517}},{{529} \over {934}}} \right\}$;取$k_i^1 = {1 \over 3},k_i^2 = {1 \over 2},i = 1,2, \ldots ,7,$,由式(16) 得出$\left\{ {\alpha _i^3} \right\}_{i = 1}^6 = \left\{ {{{116} \over {1217}},{{604} \over {1{\rm{ }}479}},{{271} \over {1{\rm{ }}105}},{{220} \over {547}},{{313} \over {2{\rm{ }}417}},{{1{\rm{ }}589} \over {3{\rm{ }}999}},{{77} \over {191}}} \right\}$图 2为相应于这3种结果的α插值曲线。

图 2 空间插值曲线
Fig. 2 Spatial interpolation curve ((a) criterion one;(b) criterion two; (c) criterion three)

2.3 椭圆的重构

在椭圆${{{x^2}} \over {2{a^2}}} + {{{y^2}} \over {2{b^2}}} = 1\left( {a,b > 0} \right)$上均匀地取4个数据点Pi-1=(-a,-b)Pi=(-a,b)Pi+1=(a,b)Pi+2=(a,-b),以它们作为待插值数据点,并取αi=${1 \over 2}$来构造α插值曲线,由式(9) (11) 计算可得

${p_i}\left( t \right) = \left( {\matrix{ {p_i^x\left( t \right)} \cr {p_i^y\left( t \right)} \cr } } \right) = \left( {\matrix{ {a\left( {s - c} \right)} \cr {b(s + c)} \cr } } \right)$

式中,t∈[0,${\pi \over 2}$],这表明此时的α插值曲线段pi(t)为一段椭圆弧。

将椭圆上的4点扩展至5点使首、末点相重,即取点P1=(-a,-b)P2=(-a,b)P3=(a,b)P4=(a,-b)P5=P1,再添加辅助点P6=P2P7=P3,并取参数αi=${\pi \over 2}$(i=1,2,3,4) ,以这些数据构造的α插值曲线恰为一个完整的椭圆,当a=b时则为整圆。这说明α插值曲线具有重构椭圆(圆)的能力。

图 3为取a=2b=1时,利用α插值曲线重构的椭圆${{{x^2}} \over 8} + {{{y^2}} \over 2}$=1。

图 3α插值曲线重构的椭圆
Fig. 3 Ellipse reconstructed by α interpolation curve

3 插值曲面

3.1 曲面的构造与性质

由上文介绍可知α插值曲线的结构与3次B样条曲线相同。B样条曲面是B样条曲线的张量积扩展,采用类似的方式也可以将α插值曲线扩展至α插值曲面。

α插值曲线的性质,可以推知α插值曲面的一些特征:α插值曲面由若干曲面片组成; 每张曲面片由4×4个呈矩形阵列的数据点确定;每张曲面片插值于4个内数据点;整张α插值曲面经过除位于4条边界上以外的所有数据点;每张曲面片在两个参数方向各含一个形状参数,这两个参数可以取不同值;为了确保位置连续,相邻曲面片沿公共边方向的参数必须取相同值。

下面分析如何解决曲面插值问题。

给定3维空间中m×n个呈矩形阵列的待插值数据点Pi,j以及对应的参数值(ui,vj),其中i=1,2,…,m,j=1,2,…,n,u1<u2<…<um,v1<v2<…<vn,这些数据点形成的网格在两个参数方向上都非封闭。要想构造在参数(ui,vj)处经过点Pi,j的光滑曲面,可以先添加辅助点Pi,j(i=0,m+1; j=0,1,…,n+1) Pi,j(i=1,2,…,m; m; j=0,n+1) 一共2(m+n+2) 个,它们分布在给定数据点的4条边界之外(如图 4(a)所示),与原始数据点一起形成(m+2) ×(n+2) 的控制网格Pi,j(i=0,1,…,m+1;j=0,1,…,n+1) 。然后由所有数据点定义(m-1) ×(n-1) 张曲面片,即

$\eqalign{ & {p_{i,j}}\left( {r,t} \right) = \sum\limits_{k = 0}^3 {\sum\limits_{l = 0}^3 {({N_{i,k}}\left( {r;\alpha _i^u} \right)} } \cr & {N_{j,l}}\left( {t;\alpha _i^v} \right){P_{i + k - 1,j + l - 1}}) \cr} $ (17)

式中,r,t∈[0,${{\pi \over 2}}$],i=1,2,…,m-1,j=1,2,…,n-1,Ni,k(r;αiu)Nj,l(t;αjv)为参数分别取αiuαjvα插值基函数。所有曲面片形成分片组合曲面

$q\left( {u,v} \right) = {p_{i,j}}({\pi \over 2}\cdot{{u - {u_i}} \over {{u_{i + 1}} - {u_i}}},{\pi \over 2}\cdot{{v - {v_j}} \over {{v_{j + 1}} - {v_j}}})$ (18)

式中,u∈[ui,ui+1],v∈[vj,vj+1],i=1,2,…,m-1,j=1,2,…,n-1

由式(10) (17) 可以得到pij(0,0) =Pi,j,pij(0,${{\pi \over 2}}$) =Pi,j+1,pij(${{\pi \over 2}}$,0) =Pi+1,j,pij(${{\pi \over 2}}$,${{\pi \over 2}}$) =Pi+1,j+1。进一步地,由式(18) 可以推出q(u,v)满足插值目标q(ui,vj)=Pi,ji=1,2,…,mj=1,2,…,n。将式(17) 所给曲面pij(r,t)称为α插值曲面片,式(18) 所给曲面q(u,v)称为α插值曲面。

当所给数据Pi,j(i=1,2,…,m;j=1,2,…,n)形成的网格在某个方向上封闭,例如当Pi,1=Pi,n(i=1,2,…,m)时,按照上面所述在4条边界以外各加一行或一列辅助点的方法将产生一张在网格封闭方向封闭的曲面,但该曲面在闭合边处通常只满足位置连续,并不光滑。在这种情形下,若希望产生封闭且光滑的插值曲面,应添加辅助点Pi,j(i=0,m+1;j=1,2,…,n+2) 以及Pi,j(i=1,2,…,m;j=n+1,n+2) 2(m+n+2) 个,并使它们满足Pi,n+1=Pi,2,Pi,n+2=Pi,3,i=1,2,…,m(如图 4(b)所示)。

图 4 辅助点分布图
Fig. 4 Distribution diagram of the auxiliary points ((a) open mesh; (b) one-way closed mesh)

图 4给出了构造插值曲面时辅助点与原始待插值数据点在排序上的相对位置关系。图 4(b)中有红、蓝、紫3种彩色标记的点,颜色相同的那两列点取值对应相等。

归因于张量积的构造方式,α插值曲面具有与α插值曲线类似的性质,例如:几何不变性与仿射不变性,对称性、局部控制性、局部形状可调性,即改变参数αiu的值只会影响行标为i的那些曲面片,改变αjv的值只会影响列标为j的那些曲面片;整体G1连续性,即关于uv方向均G1连续。

3.2 曲面的参数选择

对于α插值曲面,可以根据2.2节中的方案对每张曲面片的边界曲线确定合适的参数。

假设控制点Pi,j=(xi,j,yi,j,zi,j)(i=0,1,…,m+1;j=0,1,…,n+1) 形成m+2n+2列矩阵,则相应的α插值曲面包含(m-1) ×(n-1) 张曲面片。设沿列的方向为u向,沿行的方向为v向。则u向边界曲线的数量为(m-1) ×n条,它们是由控制点Pi-1,j、Pi,j、Pi+1,j、Pi+2,j(i=1,2,…,m-1;j=1,2,…,n)定义的α插值曲线。v向有m×(n-1) 条边界曲线,它们是由控制点Pi,j-1、Pi,j、Pi,j+1、Pi,j+2(i=1,2,…,m;j=1,2,…,n-1) 定义的插值曲线。

根据2.2节中给出的方案,可以计算出u向的(m-1) ×nα值,将它们记作αi,ju*(i=1,2,…, m-1;j=1,2,…,n);也可计算出v向的m×(n-1) α值,将它们记作αi,jv*(i=1,2,…,m;j=1,2,…,n-1) 。设αi,juαi,jv为第(i,j)α插值曲面片在两个不同方向的参数,i=1,2,…,m-1j=1,2,…,n-1。注意到为了保证相邻曲面片之间位置连续,参数之间必须满足关系

$\left\{ \matrix{ \alpha _{i,1}^u = \alpha _{i,2}^u = \ldots = \alpha _{i,n}^u \buildrel \Delta \over = \alpha _i^u,i = 1,2, \ldots ,m - 1 \hfill \cr \alpha _{1,j}^u = \alpha _{2,j}^u = \ldots = \alpha _{m,j}^u \buildrel \Delta \over = \alpha _j^v,j = 1,2, \ldots ,n - 1 \hfill \cr} \right.$

为此,取

$\left\{ \matrix{ \alpha _i^u = {1 \over n}\sum\limits_{j = 1}^n {\alpha _{i,j}^{u*}} \hfill \cr {\alpha ^v}_j = {1 \over m}\sum\limits_{i = 1}^n {\alpha _{i,j}^{v*}} \hfill \cr} \right.$ (19)

$\left\{ \matrix{ X_{i,j}^u = {\left[ {{x_{i - 1,j}},{x_{i,j}},{x_{i + 1,j}},{x_{i + 2,j}}} \right]^T} \hfill \cr Y_{i,j}^u = {\left[ {{y_{i - 1,j}},{y_{i,j}},{y_{i + 1,j}},{y_{i + 2,j}}} \right]^T} \hfill \cr Z_{i,j}^u = {\left[ {{z_{i - 1,j}},{z_{i,j}},{z_{i + 1,j}},{z_{i + 2,j}}} \right]^T} \hfill \cr X_{i,j}^v = {\left[ {{x_{i,j - 1}},{x_{i,j}},{x_{i,j + 1}},{x_{i,j + 2}}} \right]^T} \hfill \cr Y_{i,j}^v = {\left[ {{y_{i,j - 1}},{y_{i,j}},{y_{i,j + 1}},{y_{i,j + 2}}} \right]^T} \hfill \cr Z_{i,j}^v = {\left[ {{z_{i,j - 1}},{z_{i,j}},{z_{i,j + 1}},{z_{i,j + 2}}} \right]^T} \hfill \cr} \right.$

由2.2节中的准则1可得

$\left\{ \matrix{ \alpha _{i,j}^{u*} = {{f_1^u} \over {f_2^u + f_3^u}} \hfill \cr \alpha _{i,j}^{u*} = {{f_1^v} \over {f_2^v + f_3^v}} \hfill \cr} \right.$ (20)

式中

$\left\{ {\matrix{ {f_1^u = (3\pi - 8)(X{{_{i,j}^u}^T}AX_{i,j}^u + Y{{_{i,j}^u}^T}AY_{i,j}^u + Z{{_{i,j}^u}^T}AZ_{i,j}^u)} \cr {f_2^u = 2(3\pi - 8)(X{{_{i,j}^u}^T}BX_{i,j}^u + Y{{_{i,j}^u}^T}BY_{i,j}^u + Z{{_{i,j}^u}^T}BZ_{i,j}^u)} \cr {f_3^u = 2(3\pi - 10)(X{{_{i,j}^u}^T}CX_{i,j}^u + Y{{_{i,j}^u}^T}CY_{i,j}^u + Z{{_{i,j}^u}^T}CZ_{i,j}^u)} \cr {f_1^v = (3\pi - 8)(X{{_{i,j}^v}^T}TAX_{i,j}^v + Y{{_{i,j}^v}^T}AY_{i,j}^v + Z{{_{i,j}^v}^T}AZ_{i,j}^v)} \cr {f_2^v = 2(3\pi - 8)(X{{_{i,j}^v}^T}BX_{i,j}^v + Y{{_{i,j}^v}^T}BY_{i,j}^v + Z{{_{i,j}^v}^T}BZ_{i,j}^v)} \cr {f_3^v = 2(3\pi - 10)(X{{_{i,j}^v}^T}CX_{i,j}^v + Y{{_{i,j}^v}^T}CY_{i,j}^v + Z{{_{i,j}^v}^T}CZ_{i,j}^v)} \cr } } \right.$

由2.2节中的准则2可得

$\left\{ \matrix{ \alpha _{i,j}^{u*} = {{g_1^u} \over {g_2^u + g_3^u}} \hfill \cr \alpha _{i,j}^{u*} = {{g_1^v} \over {g_2^v + g_3^v}} \hfill \cr} \right.$ (21)

式中

$\left\{ {\matrix{ {g_1^u = 4(3\pi - 2)(X{{_{i,j}^u}^T}AX_{i,j}^u + Y{{_{i,j}^u}^T}AY_{i,j}^u + Z{{_{i,j}^u}^T}AZ_{i,j}^u)} \cr {g_2^u = (15\pi - 16)(X{{_{i,j}^u}^T}BX_{i,j}^u + Y{{_{i,j}^u}^T}BY_{i,j}^u + Z{{_{i,j}^u}^T}BZ_{i,j}^u)} \cr {g_3^u = 4(6\pi - 11)(X{{_{i,j}^u}^T}CX_{i,j}^u + Y{{_{i,j}^u}^T}CY_{i,j}^u + Z{{_{i,j}^u}^T}CZ_{i,j}^u)} \cr {g_1^v = 4(3\pi - 2)(X{{_{i,j}^v}^T}TAX_{i,j}^v + Y{{_{i,j}^v}^T}AY_{i,j}^v + Z{{_{i,j}^v}^T}AZ_{i,j}^v)} \cr {g_2^v = (15\pi - 16)(X{{_{i,j}^v}^T}TBX_{i,j}^v + Y{{_{i,j}^v}^T}BY_{i,j}^v + Z{{_{i,j}^v}^T}BZ_{i,j}^v)} \cr {g_3^v = 4(6\pi - 11)(X{{_{i,j}^v}^T}TCX_{i,j}^v + Y{{_{i,j}^v}^T}CY_{i,j}^v + Z{{_{i,j}^v}^T}CZ_{i,j}^v)} \cr } } \right.$

可以选择由式(19) (20) 确定的参数(记做αiu1αjv1)或由式(19) (21) 确定的参数(记做αiu2αjv2)作为α插值曲面的参数,也可以选择用这两种结果的线性组合,即

$\left\{ \matrix{ \alpha _i^{u3} = k_i^{u1}\alpha _i^{u1} + k_i^{u2}\alpha _i^{u2} \hfill \cr \alpha _j^{v3} = k_j^{v1}\alpha _j^{v1} + k_j^{v2}\alpha _j^{v2} \hfill \cr} \right.$ (22)

确定的参数作为α插值曲面的参数,组合系数kiuakjva≥0(a=1,2)

给定单向封闭的待插值数据点,并选择辅助点,它们共同形成的矩阵为

$\left( {\matrix{ {\left( { - 2, - 2,2} \right)} & {\left( { - 2,2,2} \right)} & {\left( {2,2,2} \right)} & {\left( {2, - 2,2} \right)} & {\left( { - 2, - 2,2} \right)} & {\left( { - 2,2,2} \right)} & {\left( {2,2,2} \right)} \cr {\left( { - 1, - 1,4} \right)} & {\left( { - 1,1,4} \right)} & {\left( {1,1,4} \right)} & {\left( {1, - 1,4} \right)} & {\left( { - 1, - 1,4} \right)} & {\left( { - 1,1,4} \right)} & {\left( {1,1,4} \right)} \cr {\left( { - 1, - 1,1} \right)} & {\left( { - 1,1,1} \right)} & {\left( {1,1,1} \right)} & {\left( {1, - 1,1} \right)} & {\left( { - 1, - 1,1} \right)} & {\left( { - 1,1,1} \right)} & {\left( {1,1,1} \right)} \cr {\left( { - 2, - 2,0} \right)} & {\left( { - 2,2,0} \right)} & {\left( {2,2,0} \right)} & {\left( {2, - 2,0} \right)} & {\left( { - 2, - 2,0} \right)} & {\left( { - 2,2,0} \right)} & {\left( {2,2,0} \right)} \cr {\left( { - 3, - 3,0} \right)} & {\left( { - 3,3,0} \right)} & {\left( {3,3,0} \right)} & {\left( {3, - 3,0} \right)} & {\left( { - 3, - 3,0} \right)} & {\left( { - 3,3,0} \right)} & {\left( {3,3,0} \right)} \cr } } \right)$

其中第24行,第15列交叉位置的数据为初始待插值数据。由式(19) (20) 得出$\alpha _1^{u1} = {{2{\rm{ }}428} \over {6{\rm{ }}537}},\alpha _2^{u1} = {{929} \over {4{\rm{ }}015}},\alpha _j^{v1} = {1 \over 4}\left( {j = 1,2,3,4} \right)$;由式(19) (21) 得出$\alpha _1^{u2} = {{837} \over {1{\rm{ }}346}},\alpha _2^{u2} = {{3{\rm{ }}441} \over {11{\rm{ }}497}},\alpha _j^{v2} = {{469} \over {983}}\left( {j = 1,2,3,4} \right)$;取$k_i^{u1} = k_i^{u2} = 13,i = 1,2,k_j^{v1} = 2,k_j^{v2} = 0,j = 1,2,3,4$,由式(22) 计算出$\alpha _1^{u3} = {{295} \over {891}},\alpha _2^{u3} = {{222} \over {1{\rm{ }}255}},\alpha _j^{v3} = {1 \over 2}\left( {j = 1,2,3,4} \right)$。相应于这3种不同结果的α插值曲面如图 5所示。

图 5 插值曲面
Fig. 5 Interpolation surface ((a) criterion one; (b) criterion two; (c) criterion three)

图 1图 2图 5这3个数值实例中,按准则给出的形状参数都是由Matlab编程计算出的近似值,存在少量误差。如针对图 5中的数据有

$\eqalign{ & k_1^{u1}\alpha _1^{u1} + k_1^{u2}\alpha _1^{u2} - \alpha _1^{u3} = \cr & \left( {{{2{\rm{ }}428} \over {6{\rm{ }}537}} + {{837} \over {1{\rm{ }}346}}} \right) \times {1 \over 3} - {{295} \over {891}} \approx 2.345{\rm{ }}7 \times {10^{ - 7}} \cr} $

3.3 椭球面的重构

在2.3节中给出了用α插值曲线重构椭圆、圆的方法。α插值曲面是α插值曲线的张量积扩展,由此推想α插值曲面应该可以重构椭球面、球面。

在椭球面${{{x^2}} \over {b_1^2}} + {{{y^2}} \over {b_2^2}} + {{{z^2}} \over {b_3^2}} = 1$(b1,b2,b3>0) 上取6个点P1=(0,b2,0) ,P2=(-b1,0,0) ,P3=(0,-b2,0) ,P4=(b1,0,0) ,P5=(0,0,b3),P6=(0,0,-b3),将它们排成列阵

$\left( {\matrix{ {{P_1}} & {{P_2}} & {{P_3}} & {{P_4}} \cr {{P_5}} & {{P_5}} & {{P_5}} & {{P_5}} \cr {{P_3}} & {{P_4}} & {{P_1}} & {{P_2}} \cr {{P_6}} & {{P_6}} & {{P_6}} & {{P_6}} \cr } } \right)$

以其作为待插值数据点,并取参数αiujv=${1 \over 2}$来构造α插值曲面,由式(9) (17) 计算可得

${p_{i,j}}\left( {r,t} \right) = \left( {\matrix{ {x\left( {t,r} \right)} \cr {y\left( {t,r} \right)} \cr {z\left( {t,r} \right)} \cr } } \right) = \left( {\matrix{ {{b_1}sin r cos t} \cr {{b_2}sin r sin t} \cr {{b_3}cos r} \cr } } \right)$

式中,r∈[0,${\pi \over 2}$],t∈[0,${\pi \over 2}$],这表明此时的α插值曲面为一片椭球面。若将数据增加至

$\left( {\matrix{ {{P_1}} & {{P_2}} & {{P_3}} & {{P_4}} & {{P_1}} & {{P_2}} & {{P_3}} \cr {{P_5}} & {{P_5}} & {{P_5}} & {{P_5}} & {{P_5}} & {{P_5}} & {{P_5}} \cr P & {{P_4}} & {{P_1}} & {{P_2}} & {{P_3}} & {{P_4}} & {{P_1}} \cr {{P_6}} & {{P_6}} & {{P_6}} & {{P_6}} & {{P_6}} & {{P_6}} & {{P_6}} \cr {{P_1}} & {{P_2}} & {{P_3}} & {{P_4}} & {{P_1}} & {{P_2}} & {{P_3}} \cr } } \right)$

则可得到整个椭球面,当b1=b2=b3时则为球面。这说明α插值曲面具有重构椭球面(球面)的能力。

图 6为取b1=b2=3b3=4时,利用α插值曲面重构的椭球面${{{x^2}} \over 9} + {{{y^2}} \over 9} + {{{z^2}} \over {16}}$=1的四分之一部分,它包含两张曲面片。

图 6α插值曲面重构的椭球面片
Fig. 6 Ellipsoid reconstructed by α interpolation surface

4 结 论

本文详细阐述了插值基函数的构造思路,按照该思路可以构造出一大批性质类似的插值基,这使得本文方法具有普适性。文中所给插值曲线曲面具有和3次B样条曲线曲面相同的结构,它们都具有局部形状控制性,一个数据点的改动只会影响有限的曲线段或曲面片的形状。插值曲线曲面中还含有局部形状调整参数,改变其值,只有一条曲线段、一行或一列曲面片的形状会发生改变。针对插值曲线和曲面,分别给出了3种用于确定形状参数取值的准则,这些准则都以便于编程、计算的公式形式给出,为曲线曲面的形状控制提供了方便。归功于插值基取自于三角函数空间,因此插值曲线曲面还可以精确重构椭圆、椭球面,这进一步增强了本文所给插值方法的实用性。

与Lagrange插值方法、B样条插值方法相比,本文方法主要优点在于具有局部控制性、可以精确表示椭圆、椭球面,同时本文方法还无需执行B样条插值方法中反求控制顶点的运算。与插值细分方法和插值型几何迭代法相比,本文方法主要优点在于插值曲线曲面具有显式表达式,这为后续计算带来方便。与保形有理插值样条方法相比,本文方法优点在于基函数表达式简单,易于进行性质分析。

本文方法的局限性在于曲线曲面的连续阶偏低,且曲线的保形性未知,下一步的研究计划是构造G2连续的插值曲线曲面,给出不同准则下的参数选取方案,并分析插值曲线的保正性、保单调性、保凸性。

参考文献

  • [1] Shi F Z. Computer-Aided Geometric Design and Non-uniform Rational B-Spline (Revised Edition)[M]. 2nd ed. Beijing: Higher Education Press, 2013 : 303. [ 施法中. 计算机辅助几何设计与非均匀有理B样条(修订版)[M]. 2 版. 北京: 高等教育出版社, 2013: 303.]
  • [2] Farin G. Curves and Surfaces for CAGD-A Practical Guide[M]. New York: Morgan Kaufmann Publishers, 2002 .
  • [3] Dyn N, Levin D, Gregory J A. A 4-point interpolatory subdivision scheme for curve design[J]. Computer Aided Geometric Design , 1987, 4 (4) : 257–268. DOI:10.1016/0167-8396(87)90001-X
  • [4] Hassan M F, Ivrissimitzis I P, Dodgson N A, et al. An interpolating 4-point C2 ternary stationary subdivision scheme[J]. Computer Aided Geometric Design , 2002, 19 (1) : 1–18. DOI:10.1016/S0167-8396(01)00084-X
  • [5] Rehan K, Siddiqi S S. A family of ternary subdivision schemes for curves[J]. Applied Mathematics and Computation , 2015, 270 : 114–123. DOI:10.1016/j.amc.2015.08.024
  • [6] Tan J Q, Tong G Y, Zhang L, et al. Four point interpolatory-corner cutting subdivision[J]. Applied Mathematics and Computation , 2015, 265 : 819–825. DOI:10.1016/j.amc.2015.05.107
  • [7] Lin H W. Local progressive-iterative approximation format for blending curves and patches[J]. Computer Aided Geometric Design , 2010, 27 (4) : 322–339. DOI:10.1016/j.cagd.2010.01.003
  • [8] Carnicer J M, Delgado J, Peña J M. Progressive iteration approximation and the geometric algorithm[J]. Computer-Aided Design , 2012, 44 (2) : 143–145. DOI:10.1016/j.cad.2011.01.018
  • [9] Deng C Y, Lin H W. Progressive and iterative approximation for least squares B-spline curve and surface fitting[J]. Computer-Aided Design , 2014, 47 : 32–44. DOI:10.1016/j.cad.2013.08.012
  • [10] Sarfraz M, Hussain M Z, Hussain M. Shape-preserving curve interpolation[J]. International Journal of Computer Mathematics , 2012, 89 (1) : 35–53. DOI:10.1080/00207160.2011.627434
  • [11] Zhu Y P. Research on theory and methods for geometric modeling based on basis functions possessing shape parameters[D]. Changsha:Central South University, 2014. [朱远鹏. 基函数中带形状参数的几何造型理论与方法研究[D]. 长沙:中南大学, 2014.] http://cdmd.cnki.com.cn/Article/CDMD-10533-1014403350.htm
  • [12] Han X L. Shape-preserving piecewise rational interpolant with quartic numerator and quadratic denominator[J]. Applied Mathematics and Computation , 2015, 251 : 258–274. DOI:10.1016/j.amc.2014.11.067
  • [13] Zhu Y P, Han X L. C2 rational quartic interpolation spline with local shape preserving property[J]. Applied Mathematics Letters , 2015, 46 : 57–63. DOI:10.1016/j.aml.2015.02.005
  • [14] Liu S J, Chen Z L, Zhu Y P. C1 rational quadratic trigonometric interpolation spline for data visualization[J]. Mathematical Problems in Engineering , 2015, 2015 : 983120. DOI:10.1155/2015/983120
  • [15] Yan L L, Liang J F. A class of algebraic-trigonometric blended splines[J]. Journal of Computational and Applied Mathematics , 2011, 235 (6) : 1713–1729. DOI:10.1016/j.cam.2010.09.016
  • [16] Xiong J, Guo Q W, Zhu G Q. May be whole or partial control of the C3-and C4-continuous interpolation curves[J]. Journal on Numerical Methods and Computer Applications , 2011, 32 (3) : 165–173. [ 熊建, 郭清伟, 朱功勤. 可整体或局部调控的C3, C4连续的插值曲线[J]. 数值计算与计算机应用 , 2011, 32 (3) : 165–173. ]
  • [17] Zhang R J. Uniform interpolation curves and surfaces based on a family of symmetric splines[J]. Computer Aided Geometric Design , 2013, 30 (9) : 844–860. DOI:10.1016/j.cagd.2013.10.001
  • [18] Chen S G, Wang Z H, Zhao Z J. Trigonometric B-spline curves and surfaces with shape parameter and its application[J]. Computer Applications and Software , 2015, 32 (10) : 78–81. [ 陈素根, 汪志华, 赵正俊. 带形状参数三角B样条曲线曲面及其应用[J]. 计算机应用与软件 , 2015, 32 (10) : 78–81. DOI:10.3969/j.issn.1000-386x.2015.10.017 ]
  • [19] Han X L. Cubic trigonometric polynomial curves with a shape parameter[J]. Computer Aided Geometric Design , 2004, 21 (6) : 535–548. DOI:10.1016/j.cagd.2004.03.001
  • [20] Han X A, Ma Y C, Huang X L. The cubic trigonometric Bézier curve with two shape parameters[J]. Applied Mathematics Letters , 2009, 22 (2) : 226–231. DOI:10.1016/j.aml.2008.03.015
  • [21] Han X L, Zhu Y P. Total positivity of the cubic trigonometric Bézier basis[J]. Journal of Applied Mathematics , 2014, 2014 : 1–5. DOI:10.1155/2014/198745