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]
Bezier曲线生成算法
最新推荐文章于 2022-11-19 17:05:20 发布
本文介绍了Bezier曲线的De Casteljau算法实现细节,通过动态调整参数`t`绘制Bezier曲线。算法包括`BezierCurveDeCasteljau`和`DrawBezierCurve`两个核心函数,分别用于递归计算曲线点和绘制曲线。
摘要由CSDN通过智能技术生成