当前位置:首页 » 编程语言 » 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 17:28:48 浏览:273
萝卜干存储 发布:2024-09-20 17:21:37 浏览:714
苹果手机如何迁移软件到安卓手机 发布:2024-09-20 17:21:34 浏览:691
查看服务器ip限制 发布:2024-09-20 16:56:27 浏览:388
p搜系统只缓存1页为什么 发布:2024-09-20 16:48:51 浏览:838
上网的账号和密码是什么东西 发布: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