C语言绘图技术介绍

  1. 概述
    微机显示器有两种工作模式,文本工作模式和图形工作模式。计算机必须配备图形显示卡,并有相应的驱动程序,才能在屏幕上显示和绘制图形。用户程序通过TC提供的图形库函数实现图形功能。
    调用顺序
  2. BGI(Borland图形接口)
    BGI是一个图形软件包,图形功能丰富,由四部分组成:graphics.lib(图形库文件含所有图形函数)、graphics.h(头文件即图形函数的原型说明)、.BGI(图形设备驱动程序)和.chr(字符文件)。
    其中图形函数包括:图形系统管理函数、屏幕管理函数、绘图函数、图形属性控制函数、填充函数、图形模式下的文本函数和像素操作函数等七大类。
  3. 实例—坦克图形绘制
    坦克图形
    源码如下:
#include <graphics.h>
#include <conio.h>
void main()
{
    void Tanke(int x,int y,int R,int Tcolor,int Fcolor);
    int gdriver,gmode;
    gdriver=DETECT;
    initgraph(&gdriver,&gmode,"C:\\TC30\\BGI");
    setbkcolor(BLACK);
    Tanke(300,200,100,WHITE,RED);
    getch();
    closegraph();
}
void Tanke(int x,int y,int R,int Tcolor,int Fcolor)
{
    int i;
    float j,d,t;
    d=R*0.25,t=d*0.6;
    setcolor(Tcolor);
    line(x-R,y,x+R-t,y);
    line(x-R,y,x-3*d,y+2*d);
    line(x-3*d,y+2*d,x+3*d,y+2*d);
    line(x+3*d,y+2*d,x+R-t,y);

    line(x-R,y,x-R+t,y-t);
    line(x-R+t,y-t,x-2*d,y-t);
    line(x-2*d,y-t,x-2*d+t,y-d-t);
    line(x-2*d,y-d-t,x-3*d,y-d-t);
    line(x-3*d,y-d-t,x-3*d+t,y-2*d);
    line(x-3*d+t,y-2*d,x+R-t,y-2*d);
    line(x+R-t,y-2*d,x+R-t,y);
    line(x-3*d,y-d-t,x-2*d,y-t);

    line(x-R+d-t,y+2*(d-t),x+3*d+R*0.06,y+2*(d-t));
    for(i=0;i<2*(R/d-1);i++)
      line(x-3*d+i*d,y+2*(d-t),x-3*d+i*d,y+2*d);

    setfillstyle(1,Tcolor);
    bar(x-2*d+t,y-t,x+2*d,y-0.2*d);
    line(x-2*d+t,y-t,x-t,y-3*t);
    line(x-t,y-3*t,x+3*d-t,y-3*t);
    line(x+3*d-t,y-3*t,x+2*d,y-t);
    line(x+3*d-t,y-3*t,x+3*d-t,y-1.4*d);
    line(x+2*d,y-0.2*d,x+3*d-t,y-1.4*d);

    sector(x+t,y-d,0,180,2*t,1.4*d);
    for(j=0;j<0.3*d;j++)
      line(x+0.2*d,y-3*t+j,x-2.5*d,y-3*t+j);
    setfillstyle(1,Fcolor);
    bar(x-3*d,y-1.9*d,x-2.3*d,y-1.4*d);
}
  • 6
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
为什么要写这个库? 让初学者从 Turbo C 2.0(以下简称 TC) 或 Borland C++ 3.1 开始学编程是个不错的建议,只是 TC 的环境实在太老了,复制粘贴都很不方便。有一个 Win-TC,简单用了一下,实在是个害人的东西,还不如 TC 好呢,因为它简化了所有调试的部分(或许是我没看到?),而调试是写程序相当重要的一部分。 不少老师直接拿 VC6 来讲 C 语言的,因为 VC6 的编辑和调试环境都很优秀。只可惜在 VC6 下只能做一些文字性的练习题,想画条直线画个圆都很难,还要注册窗口类、建消息循环等等,初学者会受严重打击的。许多老师让学生在 TC 下绘图,因为这的确会让人有兴趣。 所以,我想给初学者一个更好的学习环境,就是 VC6 的平台 + TC 的绘图功能,于是就有了这个库。如果您刚开始学 C 语言,或者您是一位教 C 语言的老师,那么这个东西一定会让您兴奋的。 额外说明 这个库并不适合做产品,只建议用来入门学习。如果您想做简单的绘图产品,那么 SDL 库或许更适合您。或者,直接介入 DirectX 编程吧。 安装 下载的压缩包里除了说明,只有两个主要文件,将 graphics.lib 拷贝到 VC6 文件夹下的 Lib 文件夹内,将 graphics.h 拷贝到 Include 文件夹内,仅此而已,所以我就偷懒没有做安装程序了。 使用说明 目前只把我个人理解中的初学者常用的图形函数做了一下。如果您需要更多的,请发邮件告诉我:[email protected],或者到我的博客提出来:http://hi.csdn.net/lujianfeiccie2009,我来完善。 使用上,基本和 TC 没什么区别。看一个画圆的例子吧: #include // 就是需要引用这个图形库 #include void main() { initgraph(640, 480); // 这里和 TC 略有区别 circle(200, 200, 100); // 画圆,圆心(200, 200),半径 100 getch(); // 按任意键继续 closegraph(); // 关闭图形界面 } 呵呵,很简单吧。具体的请看函数列表,以及程序范例。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值