zoukankan      html  css  js  c++  java
  • 使用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 StudioVC98Include(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图形库函数的介绍,可以参考它进行学习。

         

  • 相关阅读:
    Windows XP下 Android开发环境 搭建
    Android程序的入口点
    在eclipse里 新建android项目时 提示找不到proguard.cfg
    64位WIN7系统 下 搭建Android开发环境
    在eclipse里 新建android项目时 提示找不到proguard.cfg
    This Android SDK requires Android Developer Toolkit version 20.0.0 or above
    This Android SDK requires Android Developer Toolkit version 20.0.0 or above
    Android requires compiler compliance level 5.0 or 6.0. Found '1.4' instead
    Windows XP下 Android开发环境 搭建
    Android程序的入口点
  • 原文地址:https://www.cnblogs.com/geore/p/5914664.html
Copyright © 2011-2022 走看看