|
可通过计算验证Bezier曲线由前后两段构成。现以的系数为例,验证两端它的系数是相等的。
左端显然就是
。先看右端。若
,这时就用前半段的表达式,观察分裂计算图注意到
中有1份,
中有
份,
中是
份,
中是
份,因此全部的系数是:
右端对 ,注意到仅中有
份的,知的系数是:
设己知三次Bezier曲线P(t)的控制顶点是,在处将曲线分为两段,求出前半段的控制顶点和后半段的控制顶点有算法如下
|
|
void split_Bezier(Point
P[])
{
Point R[4],Q[4];
int i,j;
for(i=0;i<=3;i++)
R[i]=P[i];
for(i=0;i<=2;i++)
{ Q[i]=R[0];
for(j=0;j<=2-i;j++)
{ R[j].x=(R[j].x+R[j+1].x)/2;
//分别对相邻两控制点间的线段进行分裂
R[j].y=(R[j].y+R[j+1].y)/2;
}
}
Q[3]=R[0];
} |
|
|
|