教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 文库大全 > 专业资料 >

C语言图形函数大全

来源:网络收集 时间:2026-09-16
导读: C语言图形函数大全 一、字符屏幕函数 1、文本窗口的定义 TC默认定义的文本窗口为整个屏幕,共有80列(或40列)25行的文本单元,每个单元包括一个字符和一个属性,字符即ASCII码,属性规定该字符的颜色和强度。在TC中可以使用window()函数定义屏幕上的一个矩

C语言图形函数大全

一、字符屏幕函数

1、文本窗口的定义

TC默认定义的文本窗口为整个屏幕,共有80列(或40列)25行的文本单元,每个单元包括一个字符和一个属性,字符即ASCII码,属性规定该字符的颜色和强度。在TC中可以使用window()函数定义屏幕上的一个矩形域作为窗口。窗口定义之后有关窗口的输入输出函数就可以只在此窗口内进行操作而不超出窗口的边界。

其调用格式:void window(int left,int top,int right,int bottom); 该函数的原型在conio.h中。函数中形式参数(int left,int top)是窗口左上角的坐标,(int right,int bottom)则是窗口右下角的坐标。TC规定整个屏幕的左上角坐标为(1,1),右下角坐标为(80,25),如:

window(20,5,50,20)表示定义一个窗口左上角在屏幕(20,5)处,大小为30列15行的窗口。 2、文本窗口颜色的设置 文本窗口颜色的设置包括背景颜色的设置和字符颜色的设置,使用的函数及其调用格式为: 设置背景颜色:void textbackground(int color); 设置字符颜色:void textcolor(int color); 其颜色的定义见表:

3、窗口内文本的输入、输出函数 (1)窗口内文本的输出函数

int cprintf(“<格式化字符串>”,<变量列表>); int cputs(char *string); int putch(int ch);

cprintf( )函数输出一个格式化的字符串或数值到窗口中。它与printf( )函数的用法完全一样,区别就在于cprintf( )函数的输出受窗口限制,而printf( )函数的输出为整个屏幕。

cputs( )函数输出一个字符串到屏幕上,它与puts( )函数用法完全一样,只是受窗口大小的限制。 putch( )函数输出一个字符到窗口内。

注意:使用以上几种函数时,当输出超出窗口的右边界时会自动转到下一行的开始处继续输出。当

C语言图形函数大全

窗口内填满内容仍没有结束输出时,窗口屏幕将会自动逐行上卷,直到输出结束为止。 (2)窗口内文本的输入函数 int getche(void);该函数无须按回车键就可以从键盘上获得一个字符,在屏幕上显示的时候,如果字符超过了窗口右边界,则会被自动转移到下一行的开始位置。 4、有关屏幕操作的函数 void clrscr(void);清除当前窗口中的文本内容,并把光标定位在窗口的左上角(1,1)处。

void clreol(void):清除当前窗口中从光标位置到行尾的所有字符,光标位置不变。

void gotoxy(x,y);该函数用来定位光标在当前窗口中的位置。这里x,y是指光标要定位处的坐标(相对于窗口而言),当x,y超出了窗口的大小时,该函数就不起作用了。

int gettext(int x1,int y1,int x2,int y2,void *buffer); int puttext(int x1,int y1,int x2,int y2,void *buffer);

gettext( )函数是将屏幕上指定矩形区域内的文本内容存入buffer指针指向的一个内存空间。内存的大小用下式计算:所用字节大小=行数*列数*2。其中,行数=y2-y1+1,列数=x2-x1+1;puttext( )函数是将用gettext( )函数存入内存buffer中的文字内容拷贝到屏幕上指定的位置。

int movetext(int x1,int y1,int x2,int y2,int x3,int y3); movetext( )函数将屏幕上左上角为(x1,y1),右下角为(x2,y2)的一矩形窗口内的文本内容拷贝到左上角为(x3,y3)的新位置。该函数的坐标也是相对于整个屏幕而言的。

注意:gettext( )函数和puttext( )函数中的坐标是相对整个屏幕而言的,即是屏幕的绝对坐标,而不是相对窗口的坐标。movetext( )函数是拷贝而不是移动窗口区域内容,即使用该函数后,原位置区域的文本内容仍然存在。

void highvideo(void);设置显示器高亮度显示字符。 void lowvideo(void);设置显示器低亮度显示字符。

void normvideo(void);使显示器返回到程序运行前的显示方式。

int wherex(void);int wherey(void);这两个函数返回当前窗口下光标的x,y坐标值。

二、图形函数

TC提供了非常丰富的图形函数,所有的图形函数原型均在graphics.h中。 1、图形模式的初始化 不同的显示器适配器有不同的图形分辨率。即使是同一显示器适配器,在不同模式下也有不同的分辨率。因此,在屏幕作图之前,必须根据显示器的适配器种类将显示器设置为某种图形模式,在未设置图形模式之前,微机系统默认屏幕为文本模式(80列25行字符模式),此时所有图形函数均不能工作。设置屏幕为图形模式,可用下列图形初始化函数: void far initgraph(int far *gdriver, int far *gmode, char *path); 其中gdriver和gmode分别表示图形驱动器和显示模式,path是指图形驱动程序所在的目录路径(有关图形驱动器、图形模式的符号常数及对应的分辨率请参考其它书籍)。 图形驱动程序由TC出版商提供,文件扩展名为.BGI。不同的图形适配器有着不同的图形驱动程序。例如对于EGA、VGA图形适配器就需要调用驱动程序EGAVGA.BGI。 [例2.4]使用图形初始化函数设置VGA高分辨率图形模式。详见实例。 有时编程者并不知道自己所用的图形显示器适配器种类,或者需要将编写的程序用于不同的图形驱动器,为此TC提供了一个可以自动检测显示器硬件的函数,其调用格式为: void far detectgraph(int *gdriver,*gmode); 其中gdriver和gmode的意义与上面相同。 [例2.5]自动进行硬件测试并时行图形初始化。 该例程序中先对图形显示器自动检测,然后用图形初始化函数进行初始化设置,但TC还提供了一种更为简单的方法,即在gdriver=DETECT语句后跟initgraph( )函数。采用这种方法后,该例就可以改为[2.6]。 另外,TC还提供了退出图形状态的函数closegraph( ),其调用格式为:

C语言图形函数大全

void far closegraph(void); 调用该函数后就可以退出图形状态而进入文本方式,并释放用于保存图形驱动程序和字体的系统内存。

2、独立图形运行程序的建立 TC对于用initgraph( )函数直接进行的图形初始化程序,在编译和连接时并没有将相应的驱动程序装入到执行程序,而是当程序进行到initgraph( )函数时,从该函数第三个形式参数char *path所规定的路径中去找相应的驱动程序。若没有驱动程序,则在TC中去找,若TC中没有,将会出现错误: BGI Error:Graphics not initialized(use initgraph ) 因此,为了使用方便,应该建立一个不需要驱动程序就能独立运行的可执行图形程序,TC中规定可用下述步骤实现此目的。 (1)在C:\TC子目录下输入命令:BGIOBJ EGAVGA 此命令将驱动程序EGAVGA.BGI转换成EGAVGA.OBJ的目标文件。 (2)在C:\TC子目录下输入命令:TLIB LIB\GRAPHICS.LIB+EGAVGA 此命令的意思是将EGAVGA.OBJ的目标模块装到GRAPHICS.LIB库文件中。 (3)在程序中initgraph( )函数调用之前加上一句:registerbgidriver(EGAVGA_driver); 该函数告诉连接程序在连接时把EGAVGA的驱动程序装入到用户的执行程序中。经过上面处理过程,编译连接后的执行程序可在任何目录或其他兼容机运行。 假设已作了前两个步骤,若再向例2.6中加入regiserbgidriver( )函数,程序则变成[例2.7]。编译链接后产生的执行程序可以独立运行。 如不初始化成EGA或VGA分辨率,而想初始化为CGA分辨率,则只需要将上述步骤中有EGAVGA的地方用CGA代替即可。 3、屏幕颜色的设置和清屏函数 对于图形模式下的屏幕颜色设置,同样分为背景色设置和前景色设置。在TC中分别采用下面两个函数。 设置背景色:void …… 此处隐藏:4265字,全部文档内容请下载后查看。喜欢就下载吧 ……

C语言图形函数大全.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wenku/265148.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)