C语言实现生成贝塞尔曲线(代码).docVIP

  • 132
  • 0
  • 约1.13千字
  • 约 2页
  • 2019-08-01 发布于浙江
  • 举报
在C环境下编程实现:由4个控制点生成3次贝塞尔曲线 #includestdio.h #includemath.h int zuhe(int n,int k) { int i,s1,s2; s1=1; s2=1; if(k==0) return 1; for(i=n;i=n-k+1;i--) s1=s1*i; for(i=k;i=2;i--) s2=s2*i; return s1/s2; } float fang(float n,int k) { if(k==0) return 1; return pow(n,k); } float benkn(int n,int k,float t) { return zuhe(n,k)*fang(t,k)*fang(1-t,n-k); } void main() { float t[11]={0},x[4],y[4],x1[11],y1[11],s=0.0; int i; for(i=1;i11;i++) {s=s+0.1;t[i]=s;} printf(please input x value:\n); for(i=0;i4;i++) scanf(%f,x+i); printf(please input x value:\n); for(i=0;i4;i++) scanf(%f,y+i); for(i=0;i11;i++) { x1[i]=x[0]*benkn(3,0,t[i])+x[1]*benkn(3,1,t[i])+x[2]*benkn(3,2,t[i])+x[3]*benkn(3,3,t[i]); y1[i]=y[0]*benkn(3,0,t[i])+y[1]*benkn(3,1,t[i])+y[2]*benkn(3,2,t[i])+y[3]*benkn(3,3,t[i]); } printf(%f,%f,%f,%f\n,x[0],x[1],x[2],x[3]); printf(%f,%f,%f,%f\n,y[0],y[1],y[2],y[3]); for(i=0;i11;i++) { printf(%5.2f,t[i]); } printf(\n); for(i=0;i11;i++) { printf(%5.2f,x1[i]); } printf(\n); for(i=0;i11;i++) { printf(%5.2f,y1[i]); } }

文档评论(0)

1亿VIP精品文档

相关文档