分段三阶贝塞尔曲线的光滑连续性条件
1. 贝塞尔曲线简介 [1]
计算机图形学中有一类很常用的曲线,俗称贝塞尔曲线。1962年,法国数学家Pierre Bézier 第一个研究了这种矢量绘制曲线的方法,并给出了详细的计算公式,因此按照这样的公式绘制出来的曲线就用他的姓氏来命名是为贝塞尔曲线。 很多程序语言都有实现贝塞尔曲线的API,而该曲线本身也拥有强大的近似其它曲线的能力,即使一条不能够胜任,那么分段的多条贝塞尔曲线也足够用来近似我们想绘制的曲线。
这里给出贝塞尔曲线的一般公式:
P ( t ) = ∑ i = 0 n B i , n ( t ) P i P(t)=\sum_{i=0}^n{B_{i,n}(t)\mathbf{P_i}} P(t)=i=0∑nBi,n(t)Pi
其中:
B i , n ( t ) = n ! i ! ( n − i ) ! t i ( 1 − t ) n − i , t ∈ [ 0 , 1 ] B_{i,n}(t)=\frac{n!}{i!(n-i)!}t^i(1-t)^{n-i},t\in[0,1] Bi,n(t)=i!(n−i)!n!ti(1−t)n−i,t∈[0,1]
对于以$ P_{i-1} 和 和 和 P_{i} 作 为 起 点 和 终 点 的 三 阶 贝 塞 尔 曲 线 段 , 具 有 两 个 控 制 点 作为起点和终点的三阶贝塞尔曲线段,具有两个控制点 作为起点和终点的三阶贝塞尔曲线段,具有两个控制点 C_{i,1} 、 、 、 C_{i,2} $,方程为:
P i − 1 , i ( t ) = P i − 1 + ( − 3 P i − 1 + 3 C i , 1 ) t + ( 3 P i − 1 − 6 C i , 1 + 3 C i , 2 ) t 2 + ( − P i − 1 + 3 C i , 1 − 3 C i , 2 + P i ) t 3 P_{i-1,i}(t)= P_{i-1} +(- 3P_{i-1} + 3C_{i,1} )t +( 3P_{i-1} - 6C_{i,1} + 3C_{i,2} )t^2 +(- P_{i-1} + 3C_{i,1} - 3C_{i,2} + P_{i})t^3 Pi−1,i(t)=Pi−1+(−3Pi−1+3Ci,1)t+(3Pi−1−6Ci,1+3Ci,2)t2+(−Pi−1+3Ci,1−3Ci,2+Pi)t3
对应的方程一阶导数即为:
d P i − 1 , i ( t ) d t = ( − 3 P i − 1 + 3 C i , 1 ) + ( 6 P i − 1 − 12 C i , 1 + 6 C i , 2 ) t + ( − 3 P i − 1 + 9 C i , 1 − 9 C i , 2 + 3 P i ) t 2 \frac{dP_{i-1,i}(t)}{dt} = (- 3P_{i-1} + 3C_{i,1} ) +( 6P_{i-1} -12C_{i,1} + 6C_{i,2} )t +(- 3P_{i-1} + 9C_{i,1} - 9C_{i,2} + 3P_{i})t^2 dtdPi−1,i(t)=(−3Pi−1+3Ci,1)+(6Pi−1−12Ci,1+6Ci,2)t