當前位置:首頁 » 編程語言 » c語言繪圖程序
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言繪圖程序

發布時間: 2023-05-27 23:18:42

1. c語言如何畫圖

framebuffer(幀緩沖)。
幀的最低數量為24(人肉眼可見)(低於24則感覺到畫面不流暢)。
顯卡與幀的關系:由cpu調節其數據傳輸速率來輸出其三基色的配比。
三基色:RGB(紅綠藍)。

在沒有桌面和圖形文件的系統界面,可以通過C語言的編程來實現在黑色背景上畫圖!

用下面的代碼,在需要的地方(有注釋)適當修改,就能畫出自己喜歡的圖形!

PS:同樣要編譯運行後才能出效果。

  • #include <stdio.h>

  • #include <sys/mman.h>

  • #include <fcntl.h>

  • #include <linux/fb.h>

  • #include <stdlib.h>

  • #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. ");

  • exit(EXIT_FAILURE);

printf("xres: %d ", info.xres);

printf("yres: %d ", info.yres);

printf("bits_per_pixel: %d ", 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. ");

2. c語言如何畫圖

c語言畫圖 要選對 C語言編程工具。 目前最方便的是「習語言」,它能編譯所有C代碼,又能在C代碼中使用它支持的繪圖函數。
也可以使用二十年前的C語言編程工具來繪圖,通常是在DOS窗口中繪圖。

3. 如何用c語言畫圖,舉幾個最簡單的例子

首先需要繪圖函數的頭文件在TC2.0中是graphics.h
然後需要初始化圖形模式.
在利用繪圖函數
矩形:bar
圓形:circle
直線:line
等等。你可以到graphics.h文件中去看這些函數的參數
舉個例子

#include <stdio.h>
#include <graphics.h>

int main(void)
{
int gdriver; /*圖形驅動器*/
int gmode; /*圖形驅動模式*/

gdriver = DETECT; /*自動檢測硬體,已確定圖形驅動器*/
initgraph(&gdriver,&gmode,\"\");初始化圖形設備
setbkcolor(BLUE); /*設置屏幕背景顏色為藍色*/
circle(getmaxx() / 2,getmaxy() / 2,100); /*在屏幕中間繪制一個半
為100的圓*/
closegraph(); /*關閉圖形模式*/
return(0);
}

4. 怎麼用codeblocks編寫c語言的圖形程序

在codeblocks中,可以通過集成EGE庫,來實現C語言圖形程序的編寫,具體方式如下:

一、安裝:

1、下載ege安裝包;

2、將安裝包解壓;

3、把壓縮包里include目錄下所有文件,復制到編譯器安裝目錄下的include目錄內,例如D:MinGWinclude;

4、把lib目錄下對應編譯器名目錄下的文件,復制到編譯器安裝目錄下的lib目錄內,例如D:MinGWlib。

二、建立工程:

只要第1步做好以後,其實已經安裝好ege了,剩下的只是配置build option.
點擊file-new-projects,選擇Console application:

5. c語言寫畫圖程序

#include<stdio.h>
#include<graphics.h>
main()
{
int gm,gd=DETECT;
int a,T,X,R=100;
scanf("%d",&a);
T=200,
X=a*T;
initgraph(&gd,&gm,"");/*雙引號戚悔卜內填bgi文件夾在你電腦中的目錄,如在c:\tc\bgi,且c文件在高穗c:\tc\programfiles下,則填"..\\bgi"*/
circle(X,T,R);/前尺*R為半徑*/
getch();
closegraph();
}

6. 使用C語言編程畫圖

換賬號再來回答,veket的小號。。。

.......用了ege圖形庫.........純體力活.........

源代碼....demo.cpp.....

/////////////////////////////////////////

// ege0.3.8

// MinGW g++3.4.2

// veket的小號

/////////////////////////////////////////

#include"graphics.h"

#include<stdio.h>

constintYLEN=50;

constintXLEN=40;

constintWIDTH=10*XLEN;

constintHEIGHT=2*YLEN;

constintXWIDTH=640;

constintYHEIGHT=480;

intmain()

{

intx1,y1,x2,y2,x,y;

charstrbuf[100];

inti;

setinitmode(0);

initgraph(XWIDTH,YHEIGHT);

setbkcolor(RGB(0xcc,0xcc,0xcc));

setfillstyle(RGB(0xff,0xff,0xff));

x2=x1=(getmaxx()-WIDTH)/2;

y1=(getmaxy()-2*HEIGHT-YLEN)/2;

y2=y1+HEIGHT+YLEN;

bar(x1,y1,x1+WIDTH,y1+2*YLEN);

setcolor(RGB(0x04,0x04,0x04));

rectangle(x1,y1,x1+WIDTH,y1+2*YLEN);

outtextxy(x1-20,y1-10,"1");

outtextxy(x1-20,y1-10+YLEN,"0");

outtextxy(x1-20,y1-10+2*YLEN,"-1");

for(x=x1,y=y1+2*YLEN+10,i=0;x<=x1+WIDTH;x+=2*XLEN,i+=2)

{

sprintf(strbuf,"%d",i);

outtextxy(x,y,strbuf);

}

for(x=x1;x<x1+(int)(3*PI*XLEN);x++)

{

y=y1+YLEN-(int)(YLEN*sin(1.0*(x-x1)/XLEN)+0.5);

putpixel(x,y,RGB(0x3e,0x3e,0xff));

}

bar(x2,y2,x2+WIDTH,y2+2*YLEN);

rectangle(x2,y2,x2+WIDTH,y2+2*YLEN);

outtextxy(x2-20,y2-10,"1");

outtextxy(x2-20,y2-10+YLEN,"0.5");

outtextxy(x2-20,y2-10+2*YLEN,"0");

for(x=x2,y=y2+2*YLEN+10,i=0;x<=x1+WIDTH;x+=2*XLEN,i+=2)

{

sprintf(strbuf,"%d",i);

outtextxy(x,y,strbuf);

}

for(x=x2;x<x2+(int)(PI*XLEN);x++)

{

y=y2+2*YLEN-(int)(2*YLEN*sin(1.0*(x-x1)/XLEN)+0.5);

putpixel(x,y,RGB(0x3e,0x3e,0xff));

}

for(x=x2+(int)(2*PI*XLEN);x<x2+(int)(3*PI*XLEN);x++)

{

y=y2+2*YLEN-(int)(2*YLEN*sin(1.0*(x-x1)/XLEN)+0.5);

putpixel(x,y,RGB(0x3e,0x3e,0xff));

}

getch();

closegraph();

return0;

}

7. c語言編程一個畫圖軟體(畫板)該如何編寫求大佬幫助,謝謝。

C語言中提供了庫函數來畫圓,函數名為circle
函數的頭文件為 #include<graphics.h>

函數功能: circle()使用當前繪圖色並以實線畫一個完整的圓。
用法:該函數調用方式為void circle(int x,int y,int radius);
說明:參數x,y為圓心坐標,radius為圓半徑,用像素個素表示。注意,調用circle()函數畫圓時不用當前線型。