使用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圖形庫函數的介紹,可以參考它進行學習。

     


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM