MFC用B样条绘制分段Bezier曲线
将几何连续的分段多项式曲线统一采用B样条表示,是实现数据的统一管理。实现方式为将端节点重复度设置为K+1,内节点重复度设置为K,且控制点点个数减1的值为K的整数倍。
修改绘制代码的控制点与节点为:
n=6, k=3;
//节点初始化
knot[0]=0.0, knot[1]=0.0, knot[2]=0.0;
knot[3]=0.0, knot[4]=0.5, knot[5]=0.5;
knot[6]=0.5, knot[7]=1.0, knot[8]=1.0;
knot[9]=1.0, knot[10]=1.0;
//控制点初始化
P[0].x=-319, P[0].y=-14;
P[1].x=-269, P[1].y=202;
P[2].x= -61, P[2].y=198;
P[3].x= -32, P[3].y=13;
P[4].x= 54, P[4].y=-116;
P[5].x= 253, P[5].y=-76;
P[6].x= 296, P[6].y=66;
完成绘制。
参考《计算几何算法与实现》–孔令德