圖像識別 能用C語言做出一個圖形化界面是什么水平?
能用C語言做出一個圖形化界面是什么水平?可以用C語言制作一個圖形界面,說明您對C語言圖形庫有一個大致的掌握。如果能實現(xiàn)圖形繪制、文本編輯、文本滾動、字體放大及定時顯示、自繪進度條、自繪按鈕、顯示存儲區(qū)
能用C語言做出一個圖形化界面是什么水平?
可以用C語言制作一個圖形界面,說明您對C語言圖形庫有一個大致的掌握。
如果能實現(xiàn)圖形繪制、文本編輯、文本滾動、字體放大及定時顯示、自繪進度條、自繪按鈕、顯示存儲區(qū)不閃爍刷新、區(qū)域填充、透明處理等功能,說明界面基本通過標(biāo)準(zhǔn)。
就水平而言,我們只能說我們才剛剛起步。對于通用C來說,有很多東西需要學(xué)習(xí),比如各種文件的存儲、打開、刪除和重命名,動態(tài)內(nèi)存應(yīng)用和釋放的內(nèi)存管理,調(diào)用外部可執(zhí)行文件,I/O操作,與外部的串行/并行通信,網(wǎng)絡(luò)通信和共享,高端內(nèi)存使用等等語法方面,struct和union的使用也非常重要。內(nèi)存塊操作、字符串操作、各種數(shù)據(jù)類型、浮點操作以及數(shù)學(xué)定義的相關(guān)函數(shù)。H、 標(biāo)準(zhǔn)數(shù)據(jù)庫。H頭文件建議逐個嘗試。
完成所有這些,您就可以開始了。
當(dāng)然,這只是C.VC的話,還要花C兩倍的功夫
C語言是怎么實現(xiàn)圖形界面的?
你一定問過用C在windows上實現(xiàn)圖形界面的問題,有人回答C一定要調(diào)用庫來實現(xiàn)圖形界面??梢钥闯觯麄冎械暮芏嗳硕紱]有給司機寫信。首先,我們有一個顯示器,它是由點組成的。顯示器有多種接口。CPU/GPU通過這個接口(操作寄存器)與監(jiān)視器通信,并在上面畫點。然后這些點連接成一條線,這些點變成一個圓。。。等基本圖形,這些被封裝成函數(shù),與封裝、填充等功能一起構(gòu)成底層GUI。抽象之后,就有了層的概念。這是圖形庫。然后各種語言調(diào)用圖形庫來完成顯示。C語言可以從底層編寫圖形界面。但沒必要。
請問C 的圖形庫都是基于Windows提供的GDI函數(shù)實現(xiàn)的嗎?
首先,我們來談?wù)剤D形庫的概念。圖形庫分為二維圖形矢量庫和三維圖形庫。與2D一樣,它是windows上的GDI、gdiplus和direct2d。還有跨平臺Cairo和AGG,可以在Linux和MacOS上使用。
它還包括軟件實現(xiàn)和硬件加速。例如,GDI和gdiplus由CPU執(zhí)行,這是一種純軟件方式。而且,GDI長時間沒有抗混疊,繪制效果很差。但在早期的windows系統(tǒng)中,它被用來驅(qū)動2D界面?,F(xiàn)在基本上是D3D加D2D,GDI plus是一個讓GDI支持反走樣的產(chǎn)品,但是它的效率不能直接看出來。
現(xiàn)在我們在windows中看到的許多應(yīng)用程序都是用QT制作的,而且許多應(yīng)用程序是用directui框架制作的。QQ是用自己的directui框架制作的。也就是說,QT不是一個圖形庫,這是很多人無法分辨的。QT是一個跨平臺的接口框架。接口框架不僅包括圖形抽象層,還包括許多控制實現(xiàn)、邏輯處理和消息處理。它的底層圖形庫是根據(jù)不同的平臺抽象出來的,現(xiàn)在也支持OpenGL的渲染。
通用2D圖形庫僅由軟件實現(xiàn),由CPU執(zhí)行?,F(xiàn)在更好的是谷歌的skia,它是Android底層的渲染圖形庫。
對于GDI,它只能在windows下使用。雖然現(xiàn)在仍然有很多老的應(yīng)用程序使用GDI,windows以前也增加了GDI硬件加速,但是現(xiàn)在應(yīng)該用Direct3D和2D來代替,這是一個趨勢。新技術(shù)正在取代舊技術(shù)。
在未來,它肯定是3D庫。二維庫應(yīng)該是一個副產(chǎn)品,但二維庫將存在,因為它很容易繪制界面。