Bezier曲线生成算法

本文介绍了Bezier曲线的De Casteljau算法实现细节,通过动态调整参数`t`绘制Bezier曲线。算法包括`BezierCurveDeCasteljau`和`DrawBezierCurve`两个核心函数,分别用于递归计算曲线点和绘制曲线。
摘要由CSDN通过智能技术生成

 void BezierCurveDeCasteljau(Display* dpy, Drawable dra, GC* gc, int* P,int n,float t)
{
 int R[4][2];
 int r,i;
 
 int x1,y1,x2,y2;
 float s;
 for(i = 0;i<= n;i++)
 {
  R[i][X] = P[i*2];
  R[i][Y] = P[i*2+1];
 }
// s = (float)(1 - (float)t);
 s = count - t;
// t *= 10;
// s = (10 -t)/10.0;
// t /= 10.0;
// printf("s=======================%lf/n",s);
// printf("t=======================%lf/n",t);
 /**/
 for(r = 1;r <= n;r++)
  for(i = 0;i <= n-r;i++)
  {
   R[i][X] = (s*R[i][X] + t*R[i+1][X])/count;
   R[i][Y] = (s*R[i][Y] + t*R[i+1][Y]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值