怎麼用c語言畫圖
⑴ 怎麼用c語言畫圖
這個要用特殊函數了,可以看看matlab這方面的書
⑵ 如何用C語言軟體畫圖
matalab是我所知比較好的數學關系處理軟體(當然簡單一些的用excel就綽綽有餘了),C語言軟體中turbo-c顯得就力不從心了,而且要進行比較復雜的編程語言轉換,這個對於初學者太抽象了(命令式,可以類比於dos了··),如果你還是想藉助c語言類軟體的話,推薦用圖形界面的軟體,VB適於初學者,在之後可以選擇學習VC(其中VC就已經足夠強大了),另外要開發用於手機上的程式,就要學習java了··
(其他工具軟體autoCAD也行,立體建模使用3d max 或者瑪雅··)
以上僅供參考,希望對您有所幫助
⑶ 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語言畫圖
用graphics函數
坦克圖畫:
#include"graphics.h"
#include"conio.h"
void Tanke(int x,int y,int R,int TColor,int FColor)
{
int i,j,d,t;
d=R/4;t=d*0.6;
setcolor(TColor);
/*--------------------------------------------*/
line(x-R,y,x+R-t,y);
line(x-R,y,x-R+d,y+2*d);
line(x-R+d,y+2*d,x+3*d,y+2*d);
line(x+3*d,y+2*d,x+R-t,y);
/*--------------------------------------------*/
line(x-R,y,x-R+t,y-t);
line(x-R+t,y-t,x-2*d,y-t);
line(x-2*d,y-t,x-2*d+t,y-d-t);
line(x-2*d+t,y-d-t,x-3*d,y-d-t);
line(x-3*d,y-d-t,x-3*d+t,y-2*d);
line(x-3*d+t,y-2*d,x+R-t,y-2*d);
line(x+R-t,y-2*d,x+R-t,y);
/*-------------------------------------------*/
line(x-3*d,y-d-t,x-2*d,y-t);
/*-------------------------------------------*/
line(x-R+d-t,y+2*(d-t),x+3*d+R*0.04,y+2*(d-t));
for(i=0;i<2*(R/d-1);i++)
line(x-3*d+i*d,y+2*(d-t),x-3*d+i*d,y+2*d);
/*-------------------------------------------*/
setfillstyle(1,TColor);
bar(x-d*1.2,y-d*0.6,x+d*2,y-d*0.2);
line(x-d*1.2,y-d*0.6,x-d*0.6,y-d*1.8);
line(x-d*0.6,y-d*1.8,x+d*2.4,y-d*1.8);
line(x+d*2.4,y-d*1.8,x+d*2,y-d*0.6);
line(x+d*2.4,y-d*1.8,x+d*2.4,y-d*1.4);
line(x+d*2,y-d*0.2,x+d*2.4,y-d*1.4);
/*-------------------------------------------*/
sector(x+d*0.6,y-d,0,180,d*1.2,d*1.4);
/*-------------------------------------------*/
for(i=0;i<d*0.3;i++) /*畫炮桿*/
line(x+d*0.2,y-d*1.8+i,x-d*2.5,y-d*1.8+i);
setfillstyle(1,FColor);
bar(x-d*3,y-d*1.9,x-d*2.3,y-d*1.3); /*炮頭(紅色)*/
}
main()
{
int gd=DETECT,gm;
initgraph(&gd,&gm,"");
setcolor(0);
Tanke(300,200,50,WHITE,RED);
getch();
closegraph();
}
⑸ 如何用c語言實現windows畫圖工具
你好!
標准C是不帶圖像處理的.
你可以去看看.windowsAPI,
openGL
我寫過畫圖程序,用的是Turbo
C
的圖形庫,能在DOS下畫圖.
如有疑問,請追問。
⑹ 如何用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語言畫函數圖像
我畫了半個正弦函數,其餘的你可以照著畫,歡內迎討論,容
#include "stdio.h"
#include "conio.h"
#include "math.h"
#include "graphics.h"
void main()
{
int driver,mode,i;
driver=DETECT;
mode=0;
initgraph(&driver,&mode,"");
setcolor(15);
for(i=0;i<360;i++)
line(i,200*sin(i*3.14/360),i+1,200*sin((i+1)*3.14/360));
getch();
restorecrtmode();
}
⑻ 使用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;
}