void bez to points(int n,int npoints,double Pl,double points)∥P为控制点坐标points为采用几 何作图算法生成的Bezier曲线上的离散点序列 离散点序列points的个数为npoints 控制点P的个数为n+1 double t,delt; delt=l.0/(double)npoints;:/W将参数t npoints等分 t=0.0; for(int i=0;i<=npoints;i++) points[i=decas(n,P,t);∥分别求出 npoints+-1个离散点points的坐标 t+=delt;
void bez_to_points(int n,int npoints,double P[],double points[]) // P为控制点坐标 points为采用几 何作图算法生成的Bezier曲线上的离散点序列 离散点序列points的个数为npoints 控制点P的个数为n +1 { double t,delt; delt=1.0/(double)npoints;//将参数t npoints等分 t=0.0; for(int i=0;i<=npoints;i++) { points[i]=decas(n, P, t); // 分别求出 npoints+1个离散点points的坐标 t+=delt; } }
double decas(int n,double P[l,double t) int m,i; double *R,*Q,P0; R=new double n+1]; Q=new double[n +1]; for(i=0;i<=n;i++) R=P;/将控制点坐标P保存于R中 ∥需要作n次外部循环,方能产生最终 Bezier曲线在点t的值 for(m=n;m>0;m--)
double decas(int n,double P[],double t) { int m,i; double *R, *Q, P0; R = new double[n +1]; Q = new double[n +1]; for(i=0;i<=n;i++) R[i]= P [i]; //将控制点坐标P保存于R中 //需要作n次外部循环,方能产生最终 Bezier曲线在点t的值 for(m=n;m>0;m--) {
/n次Bezier曲线在点t的值,可由两条n-1次 Bezier曲线在点t的值通过线性组合而求得。 for(i=0;i<=m-1;++) Q=R+t*(R+1-R); for(i=0;i<=m-1;i++) R[]=Q [i]; P0=R0]; delete R; delete Q; return (PO);
//n次Bezier曲线在点t的值,可由两条n-1次 Bezier曲线 在点t的值通过线性组合而求得。 for(i=0;i<= m -1;i++) Q[i]= R [i]+t*( R [i+1]- R [i]); for(i=0;i<= m -1;i++) R[i]= Q [i]; } P0=R[0]; delete R; delete Q; return (P0); }
设给出四点的坐标是1,1),(2,3),(4,3) (3,1),求所确定三次Bezier曲线在t=1/3时的 值P0,算法的计算过程 m=3 mF2 mF1 P1,1尸→R0 Q(43,53)-R Q(169,19/9y→R0 Qd59/27,21/9)=P1/3) P1(2,3)-R1 Q1(83,3尸R Q1(3,259-R P2(4,3)+R2 Q2(11/3,7/3)→R2 P(3,1→R Bezier几何作图算法计算过程
设给出四点的坐标是(1,1),(2,3),(4,3), (3,1),求所确定三次Bezier曲线在t=1/3时的 值P(),算法的计算过程 Bezier几何作图算法计算过程
设控制点序列Po,P1,,P确定 的n次Bezierl曲线是P(t),用如下递 归方式计算另一组点集: k=0,i=0,1,n 1. k=1,2;…,n,i=kk+1,,n 如果令P,(s)和Pb(s)分别是以控 制点序列8,和哈,唱确 定的Bezierl曲线,其中0≤s≤1,那 么就有:
设控制点序列P0,P1,…,Pn确定 的n次Bezier曲线是P(t),用如下递 归方式计算另一组点集: = = + − − + − = = = ) , k 1,2, ,n , i k ,k 1 , ,n k 1 i 1 P k 1 i ( P 2 1 , k 0 , i 0,1, ,n i P k i P 如果令Pa (s)和Pb (s)分别是以控 制点序列 和 确 定的Bezier曲线,其中0≤s≤1,那 么就有: n n , ,P 1 ,P 0 0 P 1 0 n , ,P n 1 n ,P n n P −