1樓:
framebuffer(幀緩衝)。
幀的最低數量為24(人肉眼可見)(低於24則感覺到畫面不流暢)。
顯示卡與幀的關係:由cpu調節其資料傳輸速率來輸出其三基色的配比。
三基色:rgb(紅綠藍)。
在沒有桌面和圖形檔案的系統介面,可以通過c語言的程式設計來實現在黑色背景上畫圖!
用下面的**,在需要的地方(有註釋)適當修改,就能畫出自己喜歡的圖形!
ps:同樣要編譯執行後才能出效果。
#include
#include
#include
#include
#include
#define rgb888(r,g,b) ((r & 0xff) <<16 | (g & 0xff) << 8 | (b & 0xff))
#define rgb565(r,g,b) ((r & 0x1f) <<11 | (g & 0x3f) << 5 | (b & 0x1f))
int main()
int fd = open("/dev/fb0", o_rdwr);
if(fd < 0){
perror("open err. \n");
exit(exit_failure);
printf("xres: %d\n", info.xres);
printf("yres: %d\n", info.yres);
printf("bits_per_pixel: %d\n", info.bits_per_pixel);
size_t len = info.xres*info.yres*info.bits_per_pixel >> 3;
unsigned long* addr = null;
addr = mmap(null, len, prot_write|prot_read, map_shared, fd, 0);
if(addr == (void*)-1){
perror("mmap err. \n");
2樓:百度文庫精選
內容來自使用者:7qjcip4x40ed2
c語言畫圖基本函式
基本圖形函式包括畫點,線以及其它一些基本圖形的函式。本節對這些函式作一全面的介紹。1、畫點i.
畫點函式voidfar形象元的座標。在圖形模式下,是按象元來定義座標的。對vga介面卡,它的最高解析度為640x480,其中640為整個螢幕從左到右所有象元的個數,480為整個螢幕從上到下所有象元的個數。
螢幕的左上角座標為(0,0),右下角座標為(639,479),水平方向從左到右為x軸正向,垂直方向從上到下為y軸正向。turbo說的。關於點的另外一個函式是:
ii、有關座標位置的函式intfarintfarintfargetmaxx(void);返回x軸的最大值。getmaxy(void);返回y軸的最大值。getx(void);返回遊標在x軸的位置。
返回遊標有y軸的位置。y);移動遊標到(x,y)點,不是畫點,在移動過程中亦畫點。dx,intdy);移動遊標從現行位置(x,y)移動到(x+dx,y+dy)的位置,移動過程中不畫intfargetpixel(intx,inty);它獲得當前點(x,y)的顏色值。
c的圖形函式都是相對於圖形螢幕座標,即象元來putpixel(intx,inty,intcolor);該函式表示有指定的象元畫一個按color所確定顏色的點。對於顏色color的值可從表3中獲得而對x,y是指圖
voidfargety(void);voidfarmoverel(int點。2、畫線i.畫線函式
voidfarmoveto(intx,intturboc提供了一系列畫線函式,下面分別敘述:voidfarline(intx0,voidfarlinerel(intvoidfa
3樓:匿名使用者
c語言畫圖有專門的一個子集函式,進入影象狀態就可以利用這些函式來畫“點”,“線”,“圓”,“矩形”,“橢圓”等等基本影象,利用這些基本影象可以實現一個複雜圖形的繪製。例如:
#i nclude
void main()
4樓:福建省寧德市
c語言中提供了庫函式來畫圓,函式名為circle函式的標頭檔案為 #include
函式功能: circle()使用當前繪圖色並以實線畫一個完整的圓。
用法:該函式呼叫方式為void circle(int x,int y,int radius);
說明:引數x,y為圓心座標,radius為圓半徑,用畫素個素表示。注意,呼叫circle()函式畫圓時不用當前線型。
5樓:隔壁的蟲子
c語言是函式語言,所以畫圖也離不開各種圖形函式:下面舉幾個簡單的例子:
***********************************====
1./*學用circle畫圓形*/
#include "graphics.h"
main()
getch();
} 2.//line畫直線
#include "graphics.h"
main()
x0=263;y1=275;y0=263;
for(i=0;i<=20;i++)
getch();
} 3.//用rectangle畫方形
#include "graphics.h"
main()
settextstyle(default_font,horiz_dir,2);
outtextxy(150,40,"how beautiful it is!");
line(130,60,480,60);
setcolor(2);
circle(269,269,137);
} ***********************************
更多有關c語言圖形方面的函式及用法請參考c語言圖形學的相關知識。
6樓:匿名使用者
現在還在研究c語言畫圖有點過時了吧
7樓:匿名使用者
先要影象初始化:
int gd=detect,gm;
initgraph(&gd,&gm,"");
然後呼叫一些畫圖函式就好了,如line,circle等.
8樓:匿名使用者
不要認為學c過時了
學習c語言很有用的
你走到底層的時候你就知道了
在c語言程式設計中,如何呼叫matlab的繪圖功能?
9樓:day忘不掉的痛
一、呼叫
baimatlab引擎
呼叫matlab引擎可以du在win32、mfc中使用,zhi
它的原理實際上dao相當於開啟一個回精簡版的matlab然後往裡面輸命令答。下面是呼叫matlab中的加法程式add.m的例子。
先在matlab的work目錄下建立add.m檔案並編寫程式如下:
function s = add (a, b) s = a+b;在c程式中,首先開啟精簡版的matlab
engine *ep = engopen (null);
編譯執行後,會自動開啟一個命令列監控視窗,輸入pwd就可以看到當前的工作目錄,於是需要先將工作目錄轉換至存放add.m的目錄: engevalstring (ep, ”cd ..
\\..\\work”);
engevalstring是往matlab裡輸命令的函式,顯然我們的目標是成功執行: engevalstring (ep, ”s=add(a,b)”);
目前matlab中並沒有a和b兩個變數,因此需要在c中初始化這兩個變數並轉換成matlab基本變數型別mxarray,才能將它們輸入到matlab中。
10樓:匿名使用者
你這樣想沒
bai有錯,但du是你有沒有考慮
如何學習C語言到精通,如何學習C語言
1學譚浩強的入門 或者學那本 外國人的那本入門 c程式設計語言 the c programming language 2本可以交叉著看 2遇到看不懂的 多用google 比如malloc函式 那本書就語焉不詳 可以多找點文章看看 是在看的想睡覺的章節 比如譚浩強的那個第二章 演算法 那節 可以先跳過...
c語言如何防止型別重複定義,C語言如何防止型別重複定義
1 當1個c語言程式由 多個 源程式檔案 組成時,由於每個 源程式檔案 都有 include include h 最終它們可能形成交叉 包含 和 重複包含 現象 而造成錯誤。2 為了避免這種情況發生,可以 採用 定義巨集 的方法 把各個標頭檔案 包起來。編譯器 在正式編譯的開始,現處理 巨集 也就是...
c語言如何限制變數範圍,C語言如何限制變數範圍?
每個整數都在 10 5 10 5之間,即 100000 100000之間,這裡最大的數是10000,變換成16進位制就是186a0,資料佔用3個位元組 最壞情況下1000個100000相加等於100000000,即16進位制5f5e100,佔用4個位元組 最高位空閒,可用於符號位 假設pc機是32位...