B样条曲线B-Spline


B样条曲线

(1)Define:

P ( t ) = ∑ i = 0 n P i N i , k ( t ) , 0 ≤ t ≤ 1 P(t)=\sum\limits_{i=0}^{n}{P_iN_{i,k}(t)},0\le t\le1 P(t)=i=0nPiNi,k(t),0t1 k ∈ [ 0 , n ] 且为整数 , k 为次数, n + 1 为控制点个数 k\in[0,n]且为整数,k为次数,n+1为控制点个数 k[0,n]且为整数,k为次数,n+1为控制点个数
N i , k ( t ) = t − t i t i + k − 1 − t i N i , k − 1 ( t ) + t i + k − t t i + k − t k + 1 N i + 1 , k − 1 ( t ) , t ∈ [ t k , t n + 1 ] N_{i,k}(t)=\frac{t-t_i}{t_{i+k-1}-t_i}N_{i,k-1}(t)+\frac{t_{i+k}-t}{t_{i+k}-t_{k+1}}N_{i+1,k-1}(t),t\in[t_k,t_{n+1}] Ni,k(t)=ti+k1tittiNi,k1(t)+ti+ktk+1ti+ktNi+1,k1(t),t[tk,tn+1]
N i , 0 ( t ) = { 1 , t ∈ [ t i , t i + 1 ] 0 , e l s e ,规定 0 0 = 0 N_{i,0}(t)=\left \{ \begin{matrix}{} 1,& t \in[t_i,t_{i+1}]\\ 0,& else \\ \end{matrix} \right.,规定 \frac{0}{0}=0 Ni,0(t)={ 1,0,t[ti,ti+1]else,规定00=0
其中, P i P_i Pi为该曲线的控制顶点, N i , k ( t ) N_{i,k}(t) Ni,k(t)是Bernstein基函数,i为第i个矢量点,k为k个矢量点,k个矢量点对应的曲线阶数为k-1。

  • 其中 t i t_i ti称为节点, T = [ t 0 , t 1 , . . . , t n + k + 1 ] T=[t_0,t_1,...,t_{n+k+1}] T=[t0,t1,...,tn+k+1]构成k次B样条函数的矢量结点,n为n+1个控制点,k为次参数, k ∈ [ 2 , n + 1 ] 且为整数 k\in[2,n+1]且为整数 k[2,n+1]且为整数.节点沿着参数轴等距分布时,为均匀B样条函数;当节点沿着参数轴非均匀分布时,为非均匀分布B样条函数。
  • N i , k ( t ) N_{i,k}(t) Ni,k(t)在每个非零区间 [ t i , t i + 1 ] [t_i,t_i+1] [ti,ti+1]上都是次数不高于k的多项式,而在整个参数轴上为分段多项式。
  • 分段多项式在端点处具有连续性,且k-1次样条曲线只被相邻的k个点所控制
  • 递推关系,举例:

(2) 一次均匀B样条

第 i 段一次B样条曲线方程: P i , 2 ( t ) = P i N 0 , 2 ( t ) + P i + 1 N 1 , 2 ( t ) = [ N 0 , 2 ( t ) , N 1 , 2 ( t ) ] [ P i P i + 1 ] = [ t , 1 ] [ − 1 1 1 0 ] [ P i P i + 1 ] , t ∈ [ 0 , 1 ] P_{i,2}(t)=P_iN_{0,2}(t)+ P_{i+1}N_{1,2}(t)=[N_{0,2}(t), N_{1,2}(t)]\left[ \begin{array}{} P_i\\ P_{i+1} \end{array} \right]= [t ,1]\left[ \begin{array}{} -1& 1\\ 1&0 \end{array} \right]\left[ \begin{array}{} P_i\\ P_{i+1} \end{array} \right],t\in[0,1] Pi,2(t)=PiN02(t)+Pi+1N12(t)=[N02(t),N12(t)][PiPi+1]=[t,1][1110][PiPi+1],t[0,1]
以均匀二次B样条曲线的例子展示其求解过程的两种方法

(3)均匀二次(公式推导法)

(Step1) 根据B样条曲线公式:
P ( t ) = ∑ i

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值