问题描述:
在计算机图形学课程中,B样条曲线属于重要教学内容之一。已知,m+n+1个控制点可以确定m+1段光滑拼接的n次B样条曲线,其中第i段(i=0,1,2,...,m)曲线上点的定义为
上式用来确定曲线上的一个点,其中表示控制点,基函数的定义为
对基函数进行展开和化简可得,3次B样条曲线的4个基函数分别为
和贝塞尔曲线类似,B样条曲线的控制点确定曲线的大致形状,曲线的性质则由基函数确定。
以端点性质为例,把t=0和t=1分别代入基函数定义和B样条曲线定义式,可得
下图分别是1段3次B样条曲线和3段光滑拼接的3次B样条曲线,可以看出,与上面推导的结论是相符的。
这一点也可以通过观察3次B样条曲线4个基函数的图像来验证,通过下面的函数图像可知,1段3次B样条曲线起点位置(t=0)由前3个控制点确定(权重或贡献分别为1/6、2/3、1/6),第4个控制点不起作用(权重为0);1段3次B样条曲线的结束位置(t=1)由最后3个控制点确定(权重分别为1/6、2/3、1/6),第1个控制点不起作用(权重为0)。这与通过数学公式推导的结果是一致的。
绘制上面基函数图像的代码如下: