C语言生成Bezier曲线程序

这篇博客介绍了一个使用C语言编写的程序,用于在图形环境中生成Bezier曲线。通过定义四个控制点并应用数学公式,程序逐步绘制出曲线路径。在主函数中,设置了颜色和控制点坐标,并调用bezier_3函数绘制曲线。最后,程序等待用户按键后关闭图形窗口。
摘要由CSDN通过智能技术生成
#include <graphics.h>
void bezier_3(int color, double p[4][2])
{
    double t,t1,t2,xt,yt;
    int rate=200,x,y;
    setcolor(color);
    moveto(p[0][0],p[0][1]);
    for (t=0;t<=1;t+=1.0/rate)
    {
        yt=1-t;
 t1=yt*yt;
 t2=3*yt*t;
        xt=p[0][0]*t1*yt+p[1][0]*t2*yt+p[2][0]*t2*t+p[3][0]*t*t*t;
        yt=p[0][1]*yt*t1+p[1][1]*t2*yt+p[2][1]*t2*t+p[3][1]*t*t*t;
        x=(int)(xt);
        y=(int)(yt);
        lineto(x,y);
    }
}
void main()
{
    static double p[4][2]={50,400,140,20,400,40,635,420};
    const NO=3;           /*特征顶点数*/
    int i;
    int driver=DETECT,mode;
    initgraph(&driver,&mode,"C://tools/tc2.0");
    cleardevice();
    setcolor(BLUE);
    moveto(p[0][0],p[0][1]);
    for (i=1;i<NO;i++)
    lineto(p[i][0],p[i][1]);
    bezier_3(LIGHTRED,p);
    getch();           /*按ESC键退出*/
    closegraph();

 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值