资源描述:
《曲线的五点光滑法的C代码.doc》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、编程知识频道-求计算机图形学曲线的五点光滑法的C代码?互联网本站整理2007-8-2721:56:09知识重点:大哥给个算法吧,急用自己不会啊!!可以直接使用的源码:WORDDrawPic(POINT*PosIn,POINT*PosOut,WORDn,WORDEachSum,WORDch,floattx1,floattx2,floatty1,floatty2){..大哥给个算法吧,急用自己不会啊!!可以直接使用的源码:WORDDrawPic(POINT*PosIn,POINT*PosOut,WORDn,WORDEachSum,WORDch,flo
2、attx1,floattx2,floatty1,floatty2){constUCHARMAX_NUM=16;//最多16个点floatx[MAX_NUM],y[MAX_NUM];WORDnum=0,tt;floata[MAX_NUM],b[MAX_NUM],c[MAX_NUM],dx[MAX_NUM],dy[MAX_NUM];floatqx[MAX_NUM],qy[MAX_NUM];floatbx3,bx4,by3,by4;floatcx,cy,t[MAX_NUM+1],px[MAX_NUM],py[MAX_NUM];//floatu[3],v
3、[3];shorti;for(i=0;i4、;b[i]=t[i+1];c[i]=t[i];dx[i]=3*(t[i]*(x[i+1]-x[i])/t[i+1]+t[i+1]*(x[i]-x[i-1])/t[i]);dy[i]=3*(t[i]*(y[i+1]-y[i])/t[i+1]+t[i+1]*(y[i]-y[i-1])/t[i]);}c[0]=c[0]/a[0];for(i=1;i<=n-1;i++){a[i]=a[i]-b[i]*c[i-1];c[i]=c[i]/a[i];}a[n]=a[n]-b[n]*c[i-1];qx[0]=dx[0]/a[0];qy[0]=dy[0]/a[0]
5、;for(i=1;i<=n;i++){qx[i]=(dx[i]-b[i]*qx[i-1])/a[i];求电脑图形学曲线的五点光滑法的C编程教程?大哥给个算法吧,急用个人不会啊!!参考正确回答:没去西方国家国家疑问直接实际运用的源编程教程:WORDDrawPic(POINT*PosIn,POINT*PosOut,WORDn,WORDEachSum,WORDch,floattx1,floattx2,floatty1,floatty2){constUCHARMAX_NUM=16;//最多16个点floatx[MAX_NUM],y[MAX_NUM];WO
6、RDnum=0,tt;floata[MAX_NUM],b[MAX_NUM],c[MAX_NUM],dx[MAX_NUM],dy[MAX_NUM];floatqx[MAX_NUM],qy[MAX_NUM];floatbx3,bx4,by3,by4;floatcx,cy,t[MAX_NUM+1],px[MAX_NUM],py[MAX_NUM];//floatu[3],v[3];shorti;for(i=0;i{x=PosIn.x;y=PosIn.y;}for(i=0;it=(float)EachSum;//hypot(x[i+1]-x,y[i+1]-
7、y);t[n]=1.0e+8;//为以后的计算初始化t[n],t[0]废弃switch(ch){a[n]=1;b[n]=0;dx[n]=tx2;dy[n]=ty2;break;default:returnfalse;}for(i=1;i<=n-1;i++){a=2*(t+t[i+1]);b=t[i+1];c=t;dx=3*(t*(x[i+1]-x)/t[i+1]+t[i+1]*(x-x[i-1])/t);dy=3*(t*(y[i+1]-y)/t[i+1]+t[i+1]*(y-y[i-1])/t);}c[0]=c[0]/a[0];for(i=1;i
8、<=n-1;i++){a=a-b*c[i-1];c=c/a;}a[n]=a[n]-b[n]*c[i-1];qx[0]=dx[0]/a[0