贝塞尔曲线和B样条曲线

贝塞尔曲线

公式

P ( t ) = ∑ i = 0 n − 1 P i B i , n ( t ) (1) \mathbf{P}(t) = \sum_{i=0}^{n-1}\mathbf{P}_{i}B_{i,n}(t) \tag{1} P(t)=i=0n1PiBi,n(t)(1)
其中:
B i , n ( t ) = C n i t i ( 1 − t ) n − i (2) B_{i,n}(t) = C_{n}^{i}t^{i}(1-t)^{n-i} \tag{2} Bi,n(t)=Cniti(1t)ni(2)

B-Spline曲线

产生的背景: 贝塞尔曲线两大缺点1.阶次随着控制点数增加而线性增加,2.改变单个控制点会影响整个曲线

公式

P ( t ) = ∑ i = 0 n − 1 P i B i , d ( t ) (3) \mathbf{P}(t) = \sum_{i=0}^{n-1}\mathbf{P}_{i}B_{i,d}(t) \tag{3} P(t)=i=0n1PiBi,d(t)(3)
其中:
B i , d ( t ) = u − u i u i + d − 1 − u i B i , d − 1 ( t ) + u i + d − u u i + d − u i + 1 B i + 1 , d − 1 ( t ) (4) B_{i,d}(t) = \frac{u-u_{i}}{u_{i+d-1}-u_{i}}B_{i,d-1}(t) + \frac{u_{i+d}-u}{u_{i+d}-u_{i+1}}B_{i+1,d-1}(t) \tag{4} Bi,d(t)=ui+d1uiuuiBi,d1(t)+ui+dui+1ui+duBi+1,d1(t)(4)
式(4)中的 B i , d ( t ) B_{i,d}(t) Bi,d(t) 的初值由下式(5)计算:
B i , 0 ( t ) = { 1 t i ⩽ t ⩽ t i + 1 0 o t h e r (5) B_{i,0}(t) = \left\{\begin{matrix} 1 && t_{i} \leqslant t \leqslant t_{i+1}\\ 0 && other \end{matrix}\right. \tag{5} Bi,0(t)={10titti+1other(5)
上式(5)中的 [ t i , t i + 1 ] [t_{i},t_{i+1}] [ti,ti+1] 为相邻节点区间,根据该区间是否是相同的可将B样条曲线分为均匀样条和非均匀样条。

性质

说明: 下面图像中 N N N 指代上面公式中的 B B B u u u 指代上面公式中的 t t t ,假设阶次 d = 3 d=3 d=3 ,由公式(4)和(5)的递推关系可得下图
在这里插入图片描述
从左图中可以看出 N 1 , 3 N_{1,3} N1,3在节点区间 [ u 1 , u 5 ) [u1, u5) [u1,u5)中非零,基函数 N 1 , 3 N_{1,3} N1,3最后是要与控制点 P 1 \mathbf{P}_{1} P1相乘,因此可知控制点只在区间 [ u 1 , u 5 ) [u1, u5) [u1,u5)内有效,于是可获得性质1: 基函数 N i , p N_{i,p} Ni,p只在节点区间 [ u i , u i + p + 1 ) [u_{i},u_{i+p+1}) [ui,ui+p+1)不为0,通俗解释就是控制点 P i \mathbf{P}_{i} Pi只在节点区间 [ u i , u i + d + 1 ) [u_{i},u_{i+d+1}) [ui,ui+d+1)内被用上。
从右图可以看出在节点区间 [ u 3 , u 4 ) [u_{3},u_{4}) [u3,u4)上有 N 0 , 3 , N 1 , 3 , N 2 , 3 , N 3 , 3 N_{0,3},N_{1,3},N_{2,3},N_{3,3} N0,3,N1,3,N2,3,N3,3 四个基函数非零,于是可获得性质2: 在区间 [ u i , u i + 1 ] [u_{i},u_{i+1}] [ui,ui+1]上最多有 ( d + 1 ) (d+1) (d+1) d d d次基函数非零,通俗解释就是在区间 [ u i , u i + 1 ] [u_{i},u_{i+1}] [ui,ui+1]上只有 P i − d , . . . . . . P i \mathbf{P}_{i-d},......\mathbf{P}_{i} Pid,......Pi这些控制点被用上。

优点:

1.可指定阶次d
2.改变单个控制点只影响局部曲线段

参考

上面内容只是做了个简单的笔记,详细内容可参考下面的链接:
详解样条曲线(上)(包含贝塞尔曲线)
深入理解B样条曲线
贝塞尔曲线
在B-spline中,如何理解knot和breakpoint?彼此之间联系和区别是什么?
Toeplitz Matrix 表达 B 样条的 basis functions

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值