當前位置:首頁 » 編程語言 » c語言畫圖

c語言畫圖

發布時間: 2022-01-08 15:52:55

Ⅰ 誰知道c語言怎麼畫圖啊

Turbo C提供了非常豐富的圖形函數, 所有圖形函數的原型均在graphics. h中, 本節主要介紹圖形模式的初始化、獨立圖形程序的建立、基本圖形功能、圖形窗口以及圖形模式下的文本輸出等函數。另外, 使用圖形函數時要確保有顯示器圖形驅動程序*BGI, 同時將集成開發環境Options/Linker中的Graphics lib選為on, 只有這樣才能保證正確使用圖形函數。由於種類比較多,所以下面僅列舉2個例子,拋磚引玉→
1.點
void far putpixel(int x, int y, int color);
2.線
void far line(int x0, int y0, int x1, int y1); 畫一條從點(x0, y0)到(x1, y1)的直線。

void far lineto(int x, int y); 畫一作從現行游標到點(x, y)的直線。

void far linerel(int dx, int dy); 畫一條從現行游標(x, y)到按相對增量確定的點(x+dx, y+dy)的直線。

void far circle(int x, int y, int radius); 以(x, y)為圓心, radius為半徑, 畫一個圓。

c語言的圖形部分是很有意思的,也是c中最精彩的內容之一,希望你能很快享受它的樂趣。

Ⅱ C語言畫圖問題!

我都很久沒用C語言的畫圖函數了,像畫圓,畫正方形,畫直線,都有函數的,只不過那時候我用的編譯器是win-tc,嚴格來講畫圖這一部分不屬於C語言,只是相對於編譯器來說,比如想畫直線就用line函數,比如我要畫一個直線就是如下語句:line(100,100,200,200);我想你應該能理解函數里參數的意思這些畫圖函數,現在對我來講真的一點用處都沒有,但我並不否認它,我現在用的VC6,C++語言。我想不會有誰用win-tc來寫個軟體,用那些畫圖函數來構成軟體界面。先不管能不能實現,即使能實現,那也將是一項無比浩大的工程。我覺得應該直接用API函來進行畫圖,比如畫直線什麼的。但是你是初學,學一下TC下的畫圖函數也並不無好處。至少你了解是怎麼畫圖,屏幕的坐標是怎樣算的。TC我不常用,如果你想要例子,我倒是有WIN—TC下的例子,像計算器,小游戲什麼的代碼。我覺得還是得親自實驗才能明白,理論怎麼比不上實踐不是嗎?記得不太清楚的,好像如果你下了WIN—TC的話,這個編譯器自帶了個函數使用大全的東西,裡面和各種函數使用的簡單例子,你自己去找找吧。你如果想要代碼,就跟我說一下。是win-tc下的。

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

Ⅳ 使用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;

}

Ⅳ C語言實現畫圖功能

tc/bc在dos下自帶圖形驅動,可以使用graphics.h 頭文件調用標准C函數,如果堅決不用,請使用系統功能調用,自己編寫繪圖功能,DOS下使用int86()函數實現功能調用。有,你可以參考:

支持SVGA的高解析度繪圖通過調用中斷 10h的4f功能來實現

主要解析度設置代碼

unsigned char set_SVGA_mode(int vmode)
{union REGS r;
r.x.ax=0x4f02;
r.x.bx=vmode;
int86(0x10,&r,&r);
return(r.h.ah);
}

void hide_text_cursor(void)
{union REGS r;
r.h.ah=1;
r.h.ch=32;
int86(0x10,&r,&r);
}

void selectpage(register char page)
{union REGS r;
r.x.ax=0x4f05;
r.x.bx=0;
r.x.dx=page;
int86(0x10,&r,&r);
}

void show_text_cursor(char size)
{union REGS r;
r.h.ah=1;
r.h.cl=size;
r.h.ch=7;
int86(0x10,&r,&r);
}

unsigned int get_SVGA_mode()
{union REGS r;
r.x.ax=0x4f03;
int86(0x10,&r,&r);
return(r.x.bx);
}
windows下本來就是圖形界面,隨便可以畫,有關的概念是:Canvas,brush,color等類/參數,DrawLine/DrawArc函數/方法。

Ⅵ C語言畫圖__並保存我畫的圖片

BMP格式是公開的,非常簡單,有一個固定結構的頭,存儲圖像的寬度、高度、色深等數據,後面的數據都是以四個一組的位元組數據,存儲R G B F信息,也就是一個像素點的顏色。msdn上有相關的示例。

Ⅶ c語言結構體畫圖

就是定義一個班級結構體,裡面有班號,老師和學生,學生又是一個結構體,有年齡,性別,名字等屬性。不知道滿不滿足你的要求

Ⅷ 如何用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);
}

Ⅸ 怎樣用c語言畫圖

你相當於只是畫了10個方塊啊。
你要想連續的話就增加點的數量。
int
num[10]={181,198,207,202,200,197,199,198,215,203};
就是這個。

Ⅹ 如何用C語言軟體畫圖

matalab是我所知比較好的數學關系處理軟體(當然簡單一些的用excel就綽綽有餘了),C語言軟體中turbo-c顯得就力不從心了,而且要進行比較復雜的編程語言轉換,這個對於初學者太抽象了(命令式,可以類比於dos了··),如果你還是想藉助c語言類軟體的話,推薦用圖形界面的軟體,VB適於初學者,在之後可以選擇學習VC(其中VC就已經足夠強大了),另外要開發用於手機上的程式,就要學習java了··
(其他工具軟體autoCAD也行,立體建模使用3d max 或者瑪雅··)
以上僅供參考,希望對您有所幫助

熱點內容
上網的賬號和密碼是什麼東西 發布:2024-09-20 16:31:31 瀏覽:612
安卓手機王者榮耀如何調超高視距 發布:2024-09-20 16:31:30 瀏覽:428
安卓G是什麼app 發布:2024-09-20 16:23:09 瀏覽:81
iphone怎麼壓縮文件 發布:2024-09-20 16:08:18 瀏覽:356
linux查看用戶名密碼是什麼 發布:2024-09-20 16:03:20 瀏覽:744
mac執行python腳本 發布:2024-09-20 15:58:52 瀏覽:779
單片機android 發布:2024-09-20 09:07:24 瀏覽:765
如何提高三星a7安卓版本 發布:2024-09-20 08:42:35 瀏覽:664
如何更換伺服器網站 發布:2024-09-20 08:42:34 瀏覽:311
子彈演算法 發布:2024-09-20 08:41:55 瀏覽:289