贝塞尔曲线(Cubic Bezier Curve)
- 贝塞尔曲线使用4个控制点 P 1 , P 2 , P 3 , P 4 P_1,P_2,P_3,P_4 P1,P2,P3,P4来控制曲线的形状
- 其中曲线通过 P 1 ( b e g i n ) , P 4 ( e n d ) P_1(begin),P_4(end) P1(begin),P4(end) 点,接近但不通过 P 2 , P 3 P_2,P_3 P2,P3点
- 贝塞尔曲线的方程是一个三次多项式
以上就是贝塞尔曲线的一些基本特性,以下是贝塞尔曲线的公式。
P ( t ) = ( 1 − t ) 3 P 1 + 3 t ( 1 − t ) 2 P 2 + 3 t 2 ( 1 − t ) P 3 + t 3 P 4 P(t) = (1-t)^3P_1+3t(1-t)^2P_2+3t^2(1-t)P_3+t^3P_4 P(t)=(1−t)3P1+3t(1−t)2P2+3t2(1−t)P3+t3P4
贝塞尔曲线在 P 1 P_1 P1处的切线从 P 1 P_1 P1指向 P 2 P_2 P2也就是 P 2 − P 1 P_2-P_1 P2−P1下面简单证明:
P ( t ) ′ = − 3 ( 1 − t ) 2 P 1 + 3 ( 1 − t ) 2 P 2 − 6 t ( 1 − t ) P 2 + 6 t ( 1 − t ) P 3 − 3 t 2 P 3 + 3 t 2 P 4 P(t)'=-3(1-t)^2P_1+3(1-t)^2P_2-6t(1-t)P_2+6t(1-t)P_3-3t^2P_3+3t^2P_4 P(t)′=−3(1−t)2P1+3(1−t)2P2−6t(1−t)P2+6t(1−t)P3−3t2P3+3t2P4
对 P ( t ) P(t) P(t)求导得到上面的式子,令 t = 0 t=0 t=0,则得到 − 3 P 1 + 3 P 2 -3P_1+3P_2 −3P1+3P2,则切线方向是 P 2 − P 1 P_2-P_1 P2−P1,同理,令 t = 1 t=1 t=1,得到 3 P 4 − 3 P 3 3P_4-3P_3 3P4−3P3,则切线方向是 P 4 − P 3 P_4-P_3 P4−P3。
我们可以把控制点之前带有 t t t的式子看作是控制点的权重,则分别为
B 1 ( t ) , B 2 ( t ) , B 3 ( t ) , B 4 ( t ) B_1(t),B_2(t),B_3(t),B_4(t) B1(t),B2(t),B