C语言图形函数大全

上传人:hs****ma 文档编号:511742383 上传时间:2023-03-03 格式:DOC 页数:11 大小:94.50KB
返回 下载 相关 举报
C语言图形函数大全_第1页
第1页 / 共11页
C语言图形函数大全_第2页
第2页 / 共11页
C语言图形函数大全_第3页
第3页 / 共11页
C语言图形函数大全_第4页
第4页 / 共11页
C语言图形函数大全_第5页
第5页 / 共11页
点击查看更多>>
资源描述

《C语言图形函数大全》由会员分享,可在线阅读,更多相关《C语言图形函数大全(11页珍藏版)》请在金锄头文库上搜索。

1、文档供参考,可复制、编制,期待您的好评与关注! 一、字符屏幕函数1、文本窗口的定义TC默认定义的文本窗口为整个屏幕,共有80列(或40列)25行的文本单元,每个单元包括一个字符和一个属性,字符即ASCII码,属性规定该字符的颜色和强度。在TC中可以使用window()函数定义屏幕上的一个矩形域作为窗口。窗口定义之后有关窗口的输入输出函数就可以只在此窗口内进行操作而不超出窗口的边界。其调用格式:void window(int left,int top,int right,int bottom);该函数的原型在conio.h中。函数中形式参数(int left,int top)是窗口左上角的坐标,

2、(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);其颜色的定义见表:符号常数数值含义字符或背景BLACK0黑两者均可BLUE1蓝两者均可GREEN2绿两者均可C

3、YAN3青两者均可RED4红两者均可MAGENTA5洋红两者均可BROWN6棕两者均可LIGHTGRAY7淡灰两者均可DARKGRAY8深灰只用于字符LIGHTBLUE9淡蓝只用于字符LIGHTGREEN10淡绿只用于字符LIGHTCYAN11淡青只用于字符LIGHTRED12淡红只用于字符LIGHTMAGENTA13淡洋红只用于字符YELLOW14黄只用于字符WHITE15白只用于字符BLINK128闪烁只用于字符3、窗口内文本的输入、输出函数(1)窗口内文本的输出函数 int cprintf(“”,); int cputs(char *string); int putch(int ch);

4、 cprintf( )函数输出一个格式化的字符串或数值到窗口中。它与printf( )函数的用法完全一样,区别就在于cprintf( )函数的输出受窗口限制,而printf( )函数的输出为整个屏幕。 cputs( )函数输出一个字符串到屏幕上,它与puts( )函数用法完全一样,只是受窗口大小的限制。 putch( )函数输出一个字符到窗口内。 注意:使用以上几种函数时,当输出超出窗口的右边界时会自动转到下一行的开始处继续输出。当窗口内填满内容仍没有结束输出时,窗口屏幕将会自动逐行上卷,直到输出结束为止。(2)窗口内文本的输入函数int getche(void);该函数无须按回车键就可以从键

5、盘上获得一个字符,在屏幕上显示的时候,如果字符超过了窗口右边界,则会被自动转移到下一行的开始位置。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

6、 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,y

7、2)的一矩形窗口内的文本内容拷贝到左上角为(x3,y3)的新位置。该函数的坐标也是相对于整个屏幕而言的。注意:gettext( )函数和puttext( )函数中的坐标是相对整个屏幕而言的,即是屏幕的绝对坐标,而不是相对窗口的坐标。movetext( )函数是拷贝而不是移动窗口区域内容,即使用该函数后,原位置区域的文本内容仍然存在。void highvideo(void);设置显示器高亮度显示字符。void lowvideo(void);设置显示器低亮度显示字符。void normvideo(void);使显示器返回到程序运行前的显示方式。int wherex(void);int wherey

8、(void);这两个函数返回当前窗口下光标的x,y坐标值。二、图形函数TC提供了非常丰富的图形函数,所有的图形函数原型均在graphics.h中。1、图形模式的初始化不同的显示器适配器有不同的图形分辨率。即使是同一显示器适配器,在不同模式下也有不同的分辨率。因此,在屏幕作图之前,必须根据显示器的适配器种类将显示器设置为某种图形模式,在未设置图形模式之前,微机系统默认屏幕为文本模式(80列25行字符模式),此时所有图形函数均不能工作。设置屏幕为图形模式,可用下列图形初始化函数:void far initgraph(int far *gdriver, int far *gmode, char *p

9、ath);其中gdriver和gmode分别表示图形驱动器和显示模式,path是指图形驱动程序所在的目录路径(有关图形驱动器、图形模式的符号常数及对应的分辨率请参考其它书籍)。图形驱动程序由TC出版商提供,文件扩展名为.BGI。不同的图形适配器有着不同的图形驱动程序。例如对于EGA、VGA图形适配器就需要调用驱动程序EGAVGA.BGI。例2.4使用图形初始化函数设置VGA高分辨率图形模式。详见实例。有时编程者并不知道自己所用的图形显示器适配器种类,或者需要将编写的程序用于不同的图形驱动器,为此TC提供了一个可以自动检测显示器硬件的函数,其调用格式为:void far detectgraph(

10、int *gdriver,*gmode);其中gdriver和gmode的意义与上面相同。例2.5自动进行硬件测试并时行图形初始化。该例程序中先对图形显示器自动检测,然后用图形初始化函数进行初始化设置,但TC还提供了一种更为简单的方法,即在gdriver=DETECT语句后跟initgraph( )函数。采用这种方法后,该例就可以改为2.6。另外,TC还提供了退出图形状态的函数closegraph( ),其调用格式为:void far closegraph(void);调用该函数后就可以退出图形状态而进入文本方式,并释放用于保存图形驱动程序和字体的系统内存。2、独立图形运行程序的建立TC对于用

11、initgraph( )函数直接进行的图形初始化程序,在编译和连接时并没有将相应的驱动程序装入到执行程序,而是当程序进行到initgraph( )函数时,从该函数第三个形式参数char *path所规定的路径中去找相应的驱动程序。若没有驱动程序,则在TC中去找,若TC中没有,将会出现错误:BGI Error:Graphics not initialized(use initgraph)因此,为了使用方便,应该建立一个不需要驱动程序就能独立运行的可执行图形程序,TC中规定可用下述步骤实现此目的。(1)在C:TC子目录下输入命令:BGIOBJ EGAVGA此命令将驱动程序EGAVGA.BGI转换成

12、EGAVGA.OBJ的目标文件。(2)在C:TC子目录下输入命令:TLIB LIBGRAPHICS.LIB+EGAVGA此命令的意思是将EGAVGA.OBJ的目标模块装到GRAPHICS.LIB库文件中。(3)在程序中initgraph( )函数调用之前加上一句:registerbgidriver(EGAVGA_driver);该函数告诉连接程序在连接时把EGAVGA的驱动程序装入到用户的执行程序中。经过上面处理过程,编译连接后的执行程序可在任何目录或其他兼容机运行。假设已作了前两个步骤,若再向例2.6中加入regiserbgidriver( )函数,程序则变成例2.7。编译链接后产生的执行程

13、序可以独立运行。如不初始化成EGA或VGA分辨率,而想初始化为CGA分辨率,则只需要将上述步骤中有EGAVGA的地方用CGA代替即可。3、屏幕颜色的设置和清屏函数对于图形模式下的屏幕颜色设置,同样分为背景色设置和前景色设置。在TC中分别采用下面两个函数。设置背景色:void far setbackcolor(int color);设置作图色:void far setcolor(int color);其中color为图形方式下颜色的规定数值,对EGA、VGA显示器适配器,有关颜色的符号常数及数值与前述表相同。例2.8如下。另外,TC中还提供了几个获得现行颜色设置情况的函数。int far get

14、bkcolor(void);返回现行背景颜色值。int far getcolor(void);返回现行作图颜色值。int far getmaxcolor(void);返回最高可用的颜色值。Void far clear device(void);清除图形屏幕内容。4、基本图形函数基本图形函数包括画点、画线以及其他一些基本图形的函数。(1)画点函数void far putpixel(int x,int y,int color);该函数表示在指定的像素上画一个按color所确定颜色的点。颜色color的值可从颜色表中获得,而(x,y)就是点在图形像素的坐标。在图形模式下,我们是按像素来定义坐标的。对

15、VGA适配器,它的最高分辨率为640480,其中640为整个屏幕从左到右所有像素的个数,480为整个屏幕从上到下所有像素的个数。屏幕的左上角坐标为(0,0),右下角坐标为(639,479),水平方向从左到右为x轴方向,垂直方向从上到下为y轴方向。TC的图形函数都是相对于图形屏幕坐标,即像素来说的。关于点的另外一个函数是int far getpixel(int x,int y);它获得当前点(x,y)的颜色值。有关坐标位置的函数有:int far getmaxx(void);返回x轴的最大值。int far getmaxy(void);返回y轴的最大值。int far getx(void);返回游标在x轴的位置。int far gety(void);返回游标在y轴的位置。void far moveto(int x,int y)

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 工作计划

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号