使用graphics.h来绘制图形

|   版权声明:本文为博主原创文章,未经博主允许不得转载。

 

  graphics.h是TC里面的图形库,如果要用的话应该用TC来编译。分为:像素函数、直线和线型函数、多边形函数、填充函数等。然而在我们使用的编译器vc6.0和visual studio 2013编译器中是不支持graphics.h图形库的,当然vc6.0和visual studio 2013编译器也自带了微软的图形库API(也叫Windows API,它的函数基本上包含在了windows.h的头文件中),那么如果我们要在vc6.0和visual studio 2013中使用graphics图形库怎么办?我们有两种解决的方法。

  第一种:首先我们下载一个TC编译器安装,然后在的安装目录下面找到include文件夹和lib文件夹,再将其中的graphics图形绘制的.h文件和.lib文件复制粘贴到我们的VC6.0和visual studio 2013对应的文件夹下面去。(这个方法比较的麻烦)

  第二种:下载EasyX来添加graphics.h图形库。

  首先下载好EasyX,下载网址:http://www.easyx.cn/downloads/。在下面红框中随便选择下载一个,我下载的是EasyX_2014冬至版

  

  下载好后,将压缩包解压。我们就会在解压后的文件夹中看到有关graphics图形库相关的lib和include文件夹。

  

  然后,再将上面lib文件夹和include文件夹下面的内容复制到你的vc和visual studio 2013安装目录的对应的lib和include的文件夹的下面即可。(我这里以vc6.0为例)如下图操作:include和lib文件夹在安装目录的...\Microsoft Visual Studio\VC98\Include(or lib)

   

   

  复制好之后,那么在vc6.0下配置的graphics图形库就已经配置成功了。下面我们通过一个例子来验证下(这里直接使用EasyX帮助文档中的实例进行测试)。

  

1 #include <graphics.h>      // 就是需要引用这个图形库
2 #include <conio.h>
3 void main()
4 {
5     initgraph(640, 480);   // 这里和 TC 略有区别
6     circle(200, 200, 100); // 画圆,圆心(200, 200),半径 100
7     getch();               // 按任意键继续
8     closegraph();          // 关闭图形界面
9 }
圆的实例源码

  

// 编译环境:Visual C++ 6.0,EasyX 2014冬至版
// http://www.easyx.cn
//
#include <graphics.h>
#include <time.h>
#include <conio.h>

#define MAXSTAR 200    // 星星总数

struct STAR
{
    double    x;
    int        y;
    double    step;
    int        color;
};

STAR star[MAXSTAR];

// 初始化星星
void InitStar(int i)
{
    star[i].x = 0;
    star[i].y = rand() % 480;
    star[i].step = (rand() % 5000) / 1000.0 + 1;
    star[i].color = (int)(star[i].step * 255 / 6.0 + 0.5);    // 速度越快,颜色越亮
    star[i].color = RGB(star[i].color, star[i].color, star[i].color);
}

// 移动星星
void MoveStar(int i)
{
    // 擦掉原来的星星
    putpixel((int)star[i].x, star[i].y, 0);

    // 计算新位置
    star[i].x += star[i].step;
    if (star[i].x > 640)    InitStar(i);

    // 画新星星
    putpixel((int)star[i].x, star[i].y, star[i].color);
}

// 主函数
void main()
{
    srand((unsigned)time(NULL));    // 随机种子
    initgraph(640, 480);            // 创建绘图窗口

    // 初始化所有星星
    for(int i = 0; i < MAXSTAR; i++)
    {
        InitStar(i);
        star[i].x = rand() % 640;
    }

    // 绘制星空,按任意键退出
    while(!kbhit())
    {
        for(int i = 0; i < MAXSTAR; i++)
            MoveStar(i);
        Sleep(20);
    }

    closegraph();                    // 关闭绘图窗口
}
星空实例源码

   

 1 // 编译环境:Visual C++ 6.0,EasyX 2014冬至版
 2 // http://www.easyx.cn
 3 //
 4 #include <graphics.h>
 5 #include <conio.h>
 6 
 7 void main()
 8 {
 9     // 创建绘图窗口
10     initgraph(640, 480);
11 
12     // 画渐变的天空(通过亮度逐渐增加)
13     float H = 190;        // 色相
14     float S = 1;        // 饱和度
15     float L = 0.7f;        // 亮度
16     for(int y = 0; y < 480; y++)
17     {
18         L += 0.0005f;
19         setlinecolor( HSLtoRGB(H, S, L) );
20         line(0, y, 639, y);
21     }
22 
23     // 画彩虹(通过色相逐渐增加)
24     H = 0;
25     S = 1;
26     L = 0.5f;
27     setlinestyle(PS_SOLID, 2);        // 设置线宽为 2
28     for(int r = 400; r > 344; r--)
29     {
30         H += 5;
31         setlinecolor( HSLtoRGB(H, S, L) );
32         circle(500, 480, r);
33     }
34 
35     // 按任意键退出
36     getch();
37     closegraph();
38 }
彩虹实例源码

  

 

 *.注意:EasyX不支持.c,只支持.cpp.

     

 

 其中,在我们解压的文件夹内有一个EasyX的帮助文档,里面有很多的关于graphics图形库函数的介绍,可以参考它进行学习。

     

posted @ 2016-09-27 22:49  Geore  阅读(31359)  评论(1编辑  收藏  举报