样条曲线定义和性质(一)

参考

b 样条简史

deboor 算法 原论文,没有图解

密歇根大学 B 样条曲线和曲面 

样条曲线图解

B 样条基函数详解

简介

早期工程制图中使用压铁将细软木条固定在样点,让木条自由弯曲,在节点位置曲率连续。工程师通过木条画出平滑曲线。

fig.1 早期工程中的样条

B 样条就是基本样条。B 样条是对给定阶数、平滑度和域划分具有最小支持的样条函数。任何给定次数的样条函数都可以表示为该次数的 B 样条的线性组合。

fig.2 B 样条示例图

线性插值

从点 P0 到点 P1 的线性插值,可以表示为

y(t)=P_0+t(P_1-P_0) \\ y(t)=(1-t)P_0+t(P_1) \\

fig.3 线性插值

de Casteljau 算法

简单地说就是从控制点开始递归线性插值,公式如下

P_{i}^{k}= \begin{cases} P_i \quad &k=0 \\ (1-t)P_{i}^{k-1}+tP_{i+1}^{k-1} \quad &k=1,2,...n \quad i=0,1,...,n-k \quad t \in [0,1] \end{cases}

k 表示阶数,n 是控制点数量,n >= k+1,i 是递归插值点下标,t 是 [0,1] 上的参数,P_{i}^{k}表示第 k 阶第 i 个插值点。

e.g. 在 n=4 个控制点,k=3 阶的 de casteljau 插值算法图例如下

当 k = 0 时候,递归线性插值只能得到控制点本身,如动图 fig.5 。

fig.4 0阶递归插值的金字塔表示
fig.5 0阶递归插值

当 k=1 时候,递归线性插值得到了连接控制点之间的线段。

根据公式 t 从 0 到 1 的过程中,对应插值点P_i^1P_i^{0}P_{i+1}^{0}的移动,如动图 fig.8 动点 E F G,E F G 在线段 A-B B-C C-D 上移动。

fig.6 1阶递归插值的金字塔表示
fig.7 1阶递归插值
fig.8 1阶线性插值动图

当 k=2 时候,递归线性插值得到了插值点 H 和 I,H 和 I 分别在线段 E-F F-G 上移动。

fig.9 2阶递归插值的金字塔表示
fig.10 2阶递归插值

当 k=3 时候,递归线性插值得到了插值点 J,J 在线段 H-I 上移动。$$J_t,t \in [0,1]$$,Jt 就是样本曲线 spline。

fig.11 3阶递归插值的金字塔表示
fig.12 3阶递归插值

完全过程如图 fig.13 所示,在参数 t 从 0 到 1 的过程中,插值点 J 绘出曲线 spline。

fig.13 3阶递归插值动图

可以注意到,这种插值算法得到的曲线是包含在控制点形成的凸包内

fig.14 曲线在控制点形成的凸包内

下文

样条曲线定义和性质(二)

  • 22
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值