-
1 # zhangyiant
-
2 # C語言基礎
C語言從底開始寫圖形介面(現在基本不採用)
FC十大中文遊戲,有魂鬥羅系列、赤色要塞、重灌機兵、淘金者、超級馬里奧兄弟、坦克大戰、松鼠大作戰、惡魔城、俄羅斯方塊等等,這些FC經典遊戲基本都是採用從底層直接寫圖形。
使用第三方庫用圖形庫是EsayX,支援VC++,VS,底層還是windows程式設計。操作簡單,實用性方便。(近期寫的電子相簿如下)
特別說明:學習C/C++基礎的時候,我們呼叫的是dos 視窗,windows自帶的終端處理視窗,是沒有屬於自己的視覺化視窗。
-
3 # 三袋大菠蘿
你能接觸到的顯示介面都是別人的庫,比如DirectX,OpenGl,GDI,安卓的Canvas,ios的CoreGraphic等。
這個庫一般分為兩類,一類是面向GPU的操作庫,一類是面向圖形演算法和記憶體的庫。
面向GPU比較典型的就是DirectX和OpenGL.
他們介面偏向硬體,實現比較簡單的紋理貼圖功能,直白點就是給多個三角形,給紋理,然後顯示。你可以拿著其他工具匯出的模型(三角形和貼圖定義),預先載入特定的紋理之後,作簡單移動,縮放等操作。各種向量變化控制工作由CPU端完成,而資料量較大的紋理貼圖由GPU完成。
而GDI或者安卓的Canvas,ios的CoreGraphic是比較複雜的二維圖形演算法整合庫,一般都是在CPU端作很多工作,然後把工作結果以記憶體幀的方式提交給GPU。這種方式下,CPU和GPU之間的傳輸頻寬,以及你的工作機制非常影響速度。比如,安卓的SurfaceView畫整屏會比更新區域性的操作慢很多。
-
4 # 智慧農業研究組
如果不想那麼複雜,最簡陋的辦法,C語言可以畫線、圓、點、方等等。很多年前我嘗試自己畫過,其實玩玩也挺好玩的
-
5 # MrL3925966
就以arm M系列來說,首先使用c語言完成螢幕的驅動,主要需要完成:初始化,打點函式,讀點函式。如果使用gui例如UCGUI 、littlevgl等gui庫到這裡就完成了.如果不使用gui需要自己來寫基礎功能比如畫線、花圓、ASCII等等功能。歸根結底生成一副圖片最基本的操作就是對畫素點的操作。沒有想象的那麼神秘。不過如果想寫好一個螢幕。到上面僅僅是個開始
-
6 # KINGE
C語言實現圖形介面可以使用第三方圖形庫,目前市面上有很多圖形庫,你可以自行去網上查閱一下,我用圖形庫是EsayX,支援VC++6.0,VS2008-2019各個版本。
-
7 # Suaig
想必你問的是windows上用C實現圖形介面,另外有些回答說C必須呼叫庫才能實現圖形介面。看得出,很多都是沒有寫過驅動的。首先,我們有一個顯示器,顯示器是一個個小點組成的。顯示器有很多種介面,CPU/GPU透過這個介面(操作暫存器)和顯示器通訊,在上面畫上一個個點。然後點連成線,點變成圓。。。等等基本圖形,把這些封裝成函式,加之封裝填充之類的函式,構成了最底層的GUI。後面又經過抽象,有圖層等的概念。這就是圖形庫了。然後各種語言呼叫圖形庫完成顯示。C語言完全可以從底開始寫圖形介面。但是沒必要。
-
8 # RaymondIT
大二微機原理,上機考試就是使用匯編寫一個圖形輸入輸出介面,使用BIOS中斷來畫螢幕上的每個座標、每個色彩、每個畫素……直到現在也忘不了。
-
9 # BinaryHead
語言就是語言,圖形相關框架是作業系統提供的,作業系統提供這些圖形api介面可以多種語言形式提供,比如win下實現ui介面,可以呼叫微軟提供的platform adk中的c/c++介面,也可以用c#,vb封裝的sdk介面來做,還可以用跨平臺的QT來做ui,這些不同的sdk介面只是上層封裝提供的介面不同罷了。
回覆列表
c語言本身無法實現圖形介面,圖形介面一般都是由作業系統,或者圖形庫提供,所以需要呼叫系統api,或者圖形庫api。