给定n+1个控制点Pi(i=0,1,2,3...,n),n次B样条曲线的参数表达式为:
当n=3时,带入表达式,F函数如下:
其中0<=u<=1。结合n次B样曲线表达式,n=3时可得如下表达式。
当有4个控制点时可以直接使用如下函数绘制出曲线(曲线t的定义域为[0,1]),当有5个控制点时可以先绘制P0~P3之间的曲线,然后绘制P1~P4之间的曲线。下方参数表达式只需要更改相邻的四个控制点即可。
控制点P0~P3的B样曲线参数表达式为:
需要注意的是u的定义域为[0,1],在Qt中数据是可以直接和QPointF相乘的
P(t) = F(0,3)*P0+F(1,3)*P1+F(2,3)*P2+F(3,3)*P3;
控制点P1~P4的B样曲线参数表达式为:
P(t) = F(0,3)*P1+F(1,3)*P2+F(2,3)*P3+F(3,3)*P4;
相信聪明如你肯定知道该怎么画B样曲线了