easyX圖形庫


今天接觸了一個特別好的圖形庫,可以拯救像我一樣目前只會C語言,但是又想讓程序窗口不再一片漆黑,或者自己做個小游戲

不再那么呆板的超級實用的庫。以下是Easy X的簡介。

EasyX 是針對 C++ 的圖形庫,可以幫助 C 語言初學者快速上手圖形和游戲編程。

為什么要用 EasyX?

許多學編程的都是從 C 語言開始入門的,而目前的現狀是:

1. 有些學校以 Turbo C 為環境講 C 語言,只是 Turbo C 的環境實在太老了,復制粘貼都很不方便。

2. 有些學校直接拿 VC 來講 C 語言,因為 VC 的編輯和調試環境都很優秀,並且 VC 有適合教學的免費版本。可惜在 VC 下只能做一些文字性的練習題,想畫條直線畫個圓都很難,還要注冊窗口類、建消息循環等等,初學者會受嚴重打擊的。初學編程想要繪圖就得用 TC,很是無奈。

3. 還有計算機圖形學,這門課程的重點是繪圖算法,而不是 Windows 編程。所以,許多老師不得不用 TC 教學,因為 Windows 繪圖太復雜了,會偏離教學的重點。新的圖形學的書有不少是用的 OpenGL,可是門檻依然很高。

所以,我想給大家一個更好的學習平台,就是 VC 方便的開發平台和 TC 簡單的繪圖功能,於是就有了這個 EasyX 庫。如果您剛開始學 C 語言,或者您是一位教 C 語言的老師,再或者您在教計算機圖形學,那么這個庫一定會讓您興奮的。

 

網址:https://easyx.cn/

你可以下載幫助文檔快速上手,希望對你有所幫助!

給大家分享一個時鍾(單純的會C是不可能做出這么漂亮的時鍾的)

#include <graphics.h>
#include <conio.h>
#include <math.h>

#define High 480  // 游戲畫面尺寸
#define Width 640
#define    PI    3.14159

int main()
{
    initgraph(Width, High);        // 初始化 640 x 480 的繪圖窗口    
    int center_x,center_y;      // 中心點的坐標,也是表的中心
    center_x = Width/2;
    center_y = High/2;
    int secondLength = Width/5;           // 秒針的長度
    int minuteLength = Width/6;           // 分針的長度
    int hourLength = Width/7;             // 時針的長度
    
    int secondEnd_x,secondEnd_y;    // 秒針的終點
    int minuteEnd_x,minuteEnd_y;    // 分針的終點
    int hourEnd_x,hourEnd_y;    // 時針的終點
    float secondAngle;       // 秒鍾對應的角度
    float minuteAngle;       // 分鍾對應的角度
    float hourAngle;         // 時鍾對應的角度
    
    SYSTEMTIME ti;                // 定義變量保存當前時間
    
    BeginBatchDraw();
    while (1)
    {
        // 繪制一個簡單的表盤
        setlinestyle(PS_SOLID, 1);
        setcolor(WHITE);
        circle(center_x, center_y, Width/4);
        
        // 畫刻度
        int x, y,i;
        for (i=0; i<60; i++)
        {
            x = center_x + int(Width/4.3 * sin(PI * 2 * i / 60));
            y = center_y + int(Width/4.3 * cos(PI * 2 * i / 60));
            
            if (i % 15 == 0)
                bar(x - 5, y - 5, x + 5, y + 5);
            else if (i % 5 == 0)
                circle(x, y, 3);
            else
                putpixel(x, y, WHITE);
        }
        
        outtextxy(center_x - 25, center_y + Width/6, "我的時鍾");
        
        GetLocalTime(&ti);        // 獲取當前時間
        // 秒鍾角度變化
        secondAngle = ti.wSecond * 2*PI/60;  // 一圈一共2*PI,一圈60秒,一秒鍾秒鍾走過的角度為2*PI/60
        // 分鍾角度變化
        minuteAngle = ti.wMinute * 2*PI/60 + secondAngle/60;  // 一圈一共2*PI,一圈60分,一分鍾分鍾走過的角度為2*PI/60
        // 時鍾角度變化
        hourAngle = ti.wHour * 2*PI/12 + minuteAngle/12;  // 一圈一共2*PI,一圈12小時,一小時時鍾走過的角度為2*PI/12        
        // 由角度決定的秒針端點坐標
        secondEnd_x = center_x + secondLength*sin(secondAngle);
        secondEnd_y = center_y - secondLength*cos(secondAngle);
        
        // 由角度決定的分針端點坐標
        minuteEnd_x = center_x + minuteLength*sin(minuteAngle);
        minuteEnd_y = center_y - minuteLength*cos(minuteAngle);
        
        // 由角度決定的時針端點坐標
        hourEnd_x = center_x + hourLength*sin(hourAngle);
        hourEnd_y = center_y - hourLength*cos(hourAngle);        
        
        setlinestyle(PS_SOLID, 2);  
        setcolor(YELLOW);
        line(center_x, center_y, secondEnd_x, secondEnd_y); // 畫秒針
        
        setlinestyle(PS_SOLID, 5);  
        setcolor(BLUE);
        line(center_x, center_y, minuteEnd_x, minuteEnd_y); // 畫分針
        
        setlinestyle(PS_SOLID, 10);  
        setcolor(RED);
        line(center_x, center_y, hourEnd_x, hourEnd_y); // 畫時針
        
        FlushBatchDraw();        
        Sleep(10);
        
        setcolor(BLACK);
        setlinestyle(PS_SOLID, 2); 
        line(center_x, center_y, secondEnd_x, secondEnd_y);  // 隱藏前一幀的秒針
        setlinestyle(PS_SOLID, 5);  
        line(center_x, center_y, minuteEnd_x, minuteEnd_y); // 隱藏前一幀的分針
        setlinestyle(PS_SOLID, 10);  
        line(center_x, center_y, hourEnd_x, hourEnd_y); // 隱藏前一幀的時針
    }
    
    EndBatchDraw();
    getch();                // 按任意鍵繼續    
    closegraph();            // 關閉繪圖窗口
    return 0;
}

但是注意文件后綴名是.cpp因為EasyX是C++的庫

 


免責聲明!

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



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