c語言如何畫圖,C語言如何畫圖

2021-07-05 16:51:28 字數 3911 閱讀 4859

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位...