参数化曲线——参数三次样条曲线(1)

若已知n+1个数据点 p i ( i = 0 , 1 , . . . , n ) \bm{p}_i(i=0,1,... ,n) pi(i=0,1,...,n),构造一条通过这些数据点的参数化多项式曲线,那么曲线方程的待定系数矢量必然等于数据点的个数:
p ( u ) = ∑ i = 0 n a i u i i = 0 , 1 , . . . , n \bm{p}(u)=\sum_{i=0}^{n} \bm{a_i}u^i \qquad i=0,1,...,n p(u)=i=0naiuii=0,1,...,n
其中,系数矢量 a i \bm{a_i} ai为待求的。

数据点越多,多项式曲线需要满足的插值条件就越多,其次数越高,曲线出现扭摆的可能性越大,某个数据点的微小变动就会引起曲线较大的变化。而多项式曲线的次数越低,描述的曲线形状就越简单。

为了克服以上问题,人们通常采用多段低次(三次)的多项式曲线来插值足够多的数据点,在每段三次多项式曲线连接点处满足一阶参数连续或二阶参数连续,即参数三次样条曲线。

对于给定n+1个数据点 p i ( i = 0 , 1 , . . . , n ) \bm{p}_i(i=0,1,... ,n) pi(i=0,1,...,n),欲构造插值于这些数据点的参数三次样条曲线,首先需要做的是数据点的参数化。即给每个数据点 p i \bm{p}_i pi赋予对应的参数值 u i u_i ui,使参数值形成一个严格递增的序列 0 = u 0 < u 1 < . . . < u n = 1 0=u_0<u_1<...<u_n=1 0=u0<u1<...<un=1

把插值曲线看做质点顺序通过一些空间位置(即数据点)的运动轨迹,参数u看做时间,那么对数据点的参数化,就等于规定了质点依次到达这些空间位置的时间。

同一组数据点,即使采用同样的插值法,若数据点的参数化不同,将可能获得不同的插值曲线,数据点的参数化通常有如下方法:

不同参数化获得的插值曲线
  1. 均匀参数化
    节点在参数轴上等距分布:
    u i = i ,       i = 0 , 1 , . . . , n − 1 u_i=i, \ \ \ \ \ i=0,1,...,n-1 ui=i,     i=0,1,...,n1
    然后进行归一化。

  2. 积累弦长参数化
    { u 0 = 0 u i = u i − 1 + ∣ Δ p i − 1 ∣ ,      i = 1 , 2 , . . . , n \left\{\begin{aligned}& u_0=0 \\ &u_i=u_{i-1}+|\Delta \bm{p}_{i-1}|, \ \ \ \ i =1,2,...,n \end{aligned}\right. {u0=0ui=ui1+∣Δpi1,    i=1,2,...,n
    其中, Δ p i = Δ p i + 1 − Δ p i \Delta \bm{p}_{i}=\Delta \bm{p}_{i+1}-\Delta \bm{p}_{i} Δpi=Δpi+1Δpi为弦长矢量。这种参数化法反映了数据点按弦长的分布情况,一直被认为是最佳参数化法,多数情况下能获得满意的结果。

  3. 向心参数化
    { u 0 = 0 u i = u i − 1 + ∣ Δ p i − 1 ∣ 1 2 ,      i = 1 , 2 , . . . , n \left\{\begin{aligned}& u_0=0 \\ &u_i=u_{i-1}+|\Delta \bm{p}_{i-1}|^{\frac{1}{2}}, \ \ \ \ i =1,2,...,n \end{aligned}\right. {u0=0ui=ui1+∣Δpi121,    i=1,2,...,n
    与积累弦长法不同的是,向心参数化法取的弦长的平方根的累积。

  4. 修正弦长参数化
    { u 0 = 0 u i = u i − 1 + k i ∣ Δ p i − 1 ∣ ,      i = 1 , 2 , . . . , n \left\{\begin{aligned}& u_0=0 \\ &u_i=u_{i-1}+k_i|\Delta \bm{p}_{i-1}|, \ \ \ \ i =1,2,...,n \end{aligned}\right. {u0=0ui=ui1+ki∣Δpi1,    i=1,2,...,n
    其中, k i k_i ki为修正系数,与相邻两段的弦长即夹角有关。这种参数化方法增大了花费在曲线段运动的“时间间隔”,使“切向速度”变慢下来,好比老司机行驶在弯道较急的公路上把车速放慢下来一样。

工程实践表明,积累弦长参数化法在大多数应用中是满足要求的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值