c语言生成贝塞尔曲线及编译结果,C语言实现生成贝塞尔曲线(代码)

#includeint 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;i<11;i++) {s=s+0.1;t[i]=s;}

printf("please input x value:\n");

for(i=0;i<4;i++) scanf("%f",x+i);

printf("please input x value:\n");

for(i=0;i<4;i++) scanf("%f",y+i);

for(i=0;i<11;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;i<11;i++)

{

printf("%5.2f",t[i]);

}

printf("\n");

for(i=0;i<11;i++)

{

printf("%5.2f",x1[i]);

}

printf("\n");

for(i=0;i<11;i++)

{

printf("%5.2f",y1[i]);

}

}

2欢迎下载

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值