一個(gè)仿TC的graphics.h的BGI庫(kù),是一個(gè)為了讓VC上使用graphics.h的庫(kù)
如果你有使用那個(gè)庫(kù)的經(jīng)歷,那學(xué)起來(lái)會(huì)快得多,本庫(kù)是基于GDI編寫(xiě)的BGI兼容庫(kù),不過(guò)有少數(shù)地方和TC不太一樣。
但能讓很多基于BGI的圖形程序經(jīng)過(guò)簡(jiǎn)單修改移植到Windows。
EGE(Easy Graphics Engine),是windows下的簡(jiǎn)易繪圖庫(kù),是一個(gè)類似BGI(graphics.h)的面向C/C++語(yǔ)言新手的圖形庫(kù),它的目標(biāo)也是為了替代TC的BGI庫(kù)而存在。它的使用方法與TC中的graphics.h相當(dāng)接近,對(duì)新手來(lái)說(shuō),簡(jiǎn)單,友好,容易上手,免費(fèi)開(kāi)源,而且因?yàn)榻涌谝饬x直觀,即使是之前完全沒(méi)有接觸過(guò)圖形編程的,也能迅速學(xué)會(huì)基本的繪圖。 目前,EGE圖形庫(kù)已經(jīng)完美支持VC6, VC2008, VC2010, C-Free, DevCpp, Code::Blocks, wxDev, Eclipse for C/C++等IDE,即支持使用MinGW為編譯環(huán)境的IDE。如果你需要在VC下使用graphics.h,那么ege將會(huì)是很好的替代品。
為什么要寫(xiě)這個(gè)庫(kù)?
許多學(xué)編程的都是從 C 語(yǔ)言開(kāi)始入門(mén)的,而目前的現(xiàn)狀是:
1. 有些學(xué)校以 Turbo C 為環(huán)境講 C 語(yǔ)言,只是 Turbo C 的環(huán)境實(shí)在太老了,復(fù)制粘貼都很不方便。并且dos環(huán)境在現(xiàn)在的操作系統(tǒng)支持很有限,并且dos下可用顏色數(shù)太少。
2. 有些學(xué)校直接拿 VC 來(lái)講 C 語(yǔ)言,因?yàn)?VC 的編輯和調(diào)試環(huán)境都很優(yōu)秀,并且 VC 有適合教學(xué)的免費(fèi)版本?上С鯇W(xué)者在 VC 下一般只會(huì)做一些文字性的練習(xí)題,想畫(huà)條直線畫(huà)個(gè)圓都很難,還要注冊(cè)窗口類、建消息循環(huán)等等,初學(xué)者會(huì)受嚴(yán)重打擊的,甚至有初學(xué)者以為C只能在“黑框”下使用。
3. 還有計(jì)算機(jī)圖形學(xué),這門(mén)課程的重點(diǎn)是繪圖算法,而不是 Windows 編程。所以,許多老師不得不用 TC 教學(xué),因?yàn)?Windows 繪圖太復(fù)雜了,會(huì)偏離教學(xué)的重點(diǎn)。新的圖形學(xué)的書(shū)有不少是用的 OpenGL,可是門(mén)檻依然很高。
如果您剛開(kāi)始學(xué) C 語(yǔ)言,或者您是一位教C語(yǔ)言的老師,再或者您在教計(jì)算機(jī)圖形學(xué),那么這個(gè)庫(kù)一定會(huì)讓您興奮的。采用ege圖形庫(kù),您將可以在VC的環(huán)境中方便的處理和生成圖像,甚至制作動(dòng)畫(huà)和游戲。
ege圖形庫(kù)的優(yōu)點(diǎn)
★效率較好 特別在窗口鎖定繪圖模式下,640*480的半透明混合,可以直接使用 getpixel / putpixel 完成,并且優(yōu)化后可以在大約1.5G CPU臺(tái)式機(jī)器上達(dá)到60fps (60幀/秒)★靈活性強(qiáng) 繪圖可以直接針對(duì)一個(gè)IMAGE,或者畫(huà)在控件上,不必只能畫(huà)在屏幕上
★功能更多 支持拉伸貼圖,支持圖片旋轉(zhuǎn),支持透明半透明貼圖,支持圖像模糊濾鏡操作,可以用對(duì)話框函數(shù)進(jìn)行圖形化的輸入,可以方便地對(duì)幀率進(jìn)行準(zhǔn)確的控制,可以讀取常見(jiàn)的流行的圖片格式(bmp/jpg/png),可以保存圖片為bmp或png格式。
★免費(fèi)開(kāi)源 本圖形庫(kù)為免費(fèi)開(kāi)源的圖形庫(kù),你不但可以獲取本圖形庫(kù)的全部源代碼,你也可以參與到本圖形庫(kù)的開(kāi)發(fā),詳情請(qǐng)聯(lián)系作者misakamm
ege簡(jiǎn)要使用說(shuō)明
目前模擬了絕大多數(shù) BGI 的繪圖函數(shù)。使用上,基本的繪圖函數(shù)和 TC / BC 沒(méi)太大區(qū)別?匆粋(gè)畫(huà)圓的例子吧:#include "graphics.h" // 就是需要引用這個(gè)圖形庫(kù)
int main()
{
initgraph(640, 480); // 初始化,顯示一個(gè)窗口,這里和 TC 略有區(qū)別
circle(200, 200, 100); // 畫(huà)圓,圓心(200, 200),半徑 100
getch(); // 暫停一下等待用戶按鍵
closegraph(); // 關(guān)閉圖形界面
return 0;
}
呵呵,很簡(jiǎn)單吧。更詳細(xì)的請(qǐng)參閱ege文檔。
ege的將來(lái)
目前ege項(xiàng)目之下,有另一個(gè)項(xiàng)目Xege,x代表x-window,意為跨越支持x-window的平臺(tái)(主要為linux系統(tǒng))。Xege將發(fā)展為一個(gè)強(qiáng)大的,開(kāi)源的,跨平臺(tái)的,同時(shí)也同樣簡(jiǎn)單易上手的圖形庫(kù)。目前Xege在開(kāi)發(fā)中。
如果遇到問(wèn)題,請(qǐng)按本文最頂處的鏈接查看幫助。