计算机图形学中的曲线问题——拉格朗日插值曲线绘制实践

拉格朗日插值曲线的绘制

限于篇幅,我们将在这篇文章中介绍拉格朗日插值曲线绘制实践,主文章链接:

GGN_2015
计算机图形学中的曲线问题

在主文章中我们已经介绍了拉格朗日插值函数的绘制方法。给定一个函数必须通过的点的集合,保证任意两点 x x x 指不同,我们就能构造出一条拉格朗日插值函数。但是函数图象作为一种特殊的曲线,有着很多的我们不想要的约束,例如:

  1. 函数曲线上每个 x x x 至多只有一个 y y y 与之对应;
  2. 函数难以描述斜率不存在的位置;

因此,假如我们先要描述一条在平面甚至空间中任意“蜿蜒”的曲线,我们需要使用参数方程的方式。我们可以把平面上的参数方程理解成一个从 R \R R 映射到 R 2 \R^2 R2 的映射,每一个自变量 t t t 对应着参数方程中的一个点对 ( X t , Y t ) (X_t, Y_t) (Xt,Yt)

拉格朗日插值曲线的表示

假设我们希望我们的曲线能够依次通过 P 1 ( x 1 , y 1 ) , P 2 ( x 2 , y 2 ) , ⋯   , P n ( x n , y n ) P_1(x_1, y_1), P_2(x_2, y_2), \cdots, P_n(x_n, y_n) P1(x1,y1),P2(x2,y2),,Pn(xn,yn),那么我们不妨定义一个这样的参数方程:
M ( t ) = P 1 ⋅ f 1 ( t ) + P 2 ⋅ f 2 ( t ) ⋯ + P n ⋅ f n ( t ) , t ∈ [ 1 , n ] (1) M(t)=P_1\cdot f_1(t)+P_2\cdot f_2(t)\cdots +P_n\cdot f_n(t), t\in[1, n] \tag{1} M(t)=P1f1(t)+P2f2(t)+Pnfn(t),t[1,n](1)

其中 f i f_i fi 的是一个在 x = i x=i x=i 处取值为 1 1 1,在 x ∈ { 1 , 2 , ⋯   , n } 且 x ≠ i x\in\{1, 2, \cdots, n\} 且 x\neq i x{1,2,,n}x=i f i ( x ) = 0 f_i(x)=0 fi(x)=0,这种函数的构造方法在主文章中介绍过,在此不再赘述。 ( 1 ) (1) (1) 式中,我们将 P i P_i Pi f i ( t ) f_i(t) fi(t) 依次对应相乘,这里的点 ‘ ⋅ \cdot ’ 表示数乘向量,其中 P i P_i Pi 是二维空间的点坐标,也就是一个二维向量, f i ( t ) ∈ R f_i(t)\in \R fi(t)R 是一个实数。最终我们得到的 M ( t ) ∈ R 2 M(t)\in \R^2 M(t)R2 是一个二维向量,我们把它视为平面中的一个动点,这个动点的轨迹就是我们的插值曲线。

根据我们之前对一般的拉格朗日插值函数的介绍,我们可以得知:
M ( 1 ) = P 1 ⋅ 1 + P 2 ⋅ 0 ⋯ + P n ⋅ 0 = P 1 M ( 2 ) = P 1 ⋅ 0 + P 2 ⋅ 1 ⋯ + P n ⋅ 0 = P 2 ⋮ M ( n ) = P 1 ⋅ 0 + P 2 ⋅ 0 ⋯ + P n ⋅ 1 = P n M(1)=P_1\cdot 1+P_2\cdot 0\cdots +P_n\cdot0=P_1\\ M(2)=P_1\cdot 0+P_2\cdot 1\cdots +P_n\cdot0=P_2\\ \vdots\\ M(n)=P_1\cdot 0+P_2\cdot 0\cdots +P_n\cdot1=P_n\\ M(1)=P11+P20+Pn0=P1M(2)=P10+P21+Pn0=P2M(n)=P10+P20+Pn1=Pn

换言之,当 t t t 1 1 1 变化到 n n n 的过程中参数方程曲线 M ( t ) M(t) M(t) 能够依次通过 P 1 , P 2 , ⋯   , P n P_1, P_2, \cdots, P_n P1,P2,,Pn 中的每一个点。下面给出了一个包含五个结点的拉格朗日插值函数的示例:

插值曲线
我们会看到,上图中红色的曲线确实忠实地穿过了 P 1 , P 2 , ⋯   , P 5 P_1, P_2, \cdots, P_5 P1,P2,,P5 这五个控制点,但是当我们改变其中一个点的坐标时,整条曲线都扭得很厉害,而这也正是插值曲线不适合做工业设计的原因。在大多数时刻我们都不仅需要曲线经过一些指定的定点,还希望曲线能在控制点变化时尽可能保持一个较为稳定的形态,否则我们将很难实现对曲线形状的自由控制。

但拉格朗日插值曲线也有它的优势,一方面他是插值曲线,能够通过指定的所有控制点,而拟合曲线只能近似通过某些控制点。另一方面就是拉格朗日插值曲线无穷阶可导连续,而这一点是一般的分段函数很难实现的。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值