一、EasyX簡介
EasyX是一個基於C/C++的圖形庫,其一大特點就是非常好入門。它的官方網站提供了詳細而豐富的教程。除此之外,EasyX還支持 Windows 環境下的一些常用窗口程序。EasyX 的作者是中國著名的編程大牛——陳倉九段。
EasyX 中的許多函數名字都很直觀,使得初學者能夠快速掌握。同時,還有很多實用的圖形函數,可以用來繪製各種圖形(矩形、圓形、線段等)和特效(陰影、透明度等)。
接下來我們將會從以下幾個方面來更加深入了解 EasyX:圖形窗口的創建、基本圖形繪製、動畫製作、按鍵響應以及鼠標響應。
二、圖形窗口的創建
在使用 EasyX 繪圖之前,首先需要創建一個窗口。下面是一個窗口的創建示例:
#include<graphics.h> //EasyX頭文件 int main(){ initgraph(640, 480); //創建一個640 * 480的窗口 getch(); //等待關閉窗口 closegraph(); //關閉圖形窗口 return 0; }
以上代碼中使用了 EasyX 提供的窗口創建函數 initgraph(),其中參數含義依次是窗口寬度、窗口高度。EasyX 也支持窗口標題等一些設置,具體使用方式請查看 EasyX 的官方文檔。最後,要記得關閉繪圖窗口。
三、基本圖形繪製
在 EasyX 中,有許多用來繪製基本圖形的函數,其中常用的有繪製線段 line()、繪製矩形 rectangle()、繪製圓形 circle()。下面是一個繪製矩形的代碼示例:
#include<graphics.h> int main(){ initgraph(640, 480); rectangle(100, 100, 300, 300); //繪製一個矩形,左上角坐標(100, 100),右下角坐標(300, 300) getch(); closegraph(); return 0; }
需要注意的是,矩形的左上角和右下角的坐標需要自己計算。同樣,其他基本圖形的繪製函數也需要傳入特定的參數。除了繪製基本圖形外,EasyX 還提供了豐富的漸變色可供選擇。
四、動畫製作
EasyX 還可以用來製作簡單的動畫。如下面的示例代碼,可以模擬一個小球在窗口中彈來彈去的效果:
#include<graphics.h> int main(){ initgraph(640, 480); int x = 100; //小球初始x坐標 int y = 100; //小球初始y坐標 int dx = 5; //小球每次的x坐標變化量 int dy = 5; //小球每次的y坐標變化量 while(1){ setfillcolor(YELLOW); //設置小球為黃色 solidcircle(x, y, 20); //繪製小球 x += dx; //讓小球x坐標增加 y += dy; //讓小球y坐標增加 if (x 620) dx = -dx; //當小球碰到窗口左右邊緣時,改變x坐標變化量的符號 if (y 460) dy = -dy; //當小球碰到窗口上下邊緣時,改變y坐標變化量的符號 Sleep(10); //使小球移動不至於太快 cleardevice(); //清空畫布,以便繪製下一幀 } getch(); closegraph(); return 0; }
以上代碼通過不斷更改小球的坐標值,再加上 Sleep() 函數的等待,模擬出了小球彈來彈去的動效。小球碰到窗口邊緣時,通過改變坐標變化量的符號回彈。
五、鍵盤和鼠標響應
EasyX 的另一個特點是支持鍵盤和鼠標的控制。下面的代碼示例是利用鍵盤控制小球的移動方向,通過按 w、a、s、d 分別對應小球上下左右的移動:
#include<graphics.h> int main(){ initgraph(640, 480); int x = 100; int y = 100; while(1){ if(kbhit()){ //檢測鍵盤是否按下,kbhit()函數返回值為1時表示有鍵盤輸入 int key = getch(); //獲取鍵盤輸入 if (key == 'w') y -= 10; if (key == 's') y += 10; if (key == 'a') x -= 10; if (key == 'd') x += 10; } setfillcolor(YELLOW); solidcircle(x, y, 20); cleardevice(); } getch(); closegraph(): return 0; }
以上代碼在主循環中通過 kbhit() 函數檢測鍵盤是否有輸入,如果有,則通過 getch() 獲取到按下的鍵對應的 ASCII 碼(按下 ASCII 碼對應的字符時可以看到小球移動)。判斷按下的鍵來移動小球的位置,同時每次移動前都需要清空畫布。
結束語
EasyX 非常適合初學者學習圖形編程,其語法簡單易懂、代碼容易編寫。初學者通過自己的編寫調試,可以更好的掌握 EasyX,進而進入圖形編程的奧秘之中。
原創文章,作者:CJIMA,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/371386.html