C语言图形函数大全
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字,全部文档内容请下载后查看。喜欢就下载吧 ……
相关推荐:
- [专业资料]《蜜蜂之家》教学反思
- [专业资料]过去分词作定语和表语1
- [专业资料]苏州工业园区住房公积金贷款申请表
- [专业资料]保安管理制度及处罚条例细则
- [专业资料]2018年中国工程咨询市场发展现状调研及
- [专业资料]2015年电大本科《学前教育科研方法》期
- [专业资料]数字信号处理实验 matlab版 离散傅里叶
- [专业资料]“十三五”重点项目-虎杖白藜芦醇及功
- [专业资料]2015-2020年中国竹木工艺市场需求及投
- [专业资料]国际贸易理论与实务作业五:理论案例分
- [专业资料]财政部修订发布事业单位会计制度
- [专业资料]BCA蛋白浓度测定试剂盒(增强型)
- [专业资料]工程进度总计划横道图模板(通用版)
- [专业资料]七年级地理同步练习(天气与气候)
- [专业资料]X光安检机介绍火灾自动报警系统的组成
- [专业资料]衢州市人民政府办公室关于印发衢州市区
- [专业资料]经济全球化及其影响[1]
- [专业资料]质粒DNA限制性酶切图谱分析
- [专业资料]国家安全人民防线工作“六项”制度
- [专业资料]劳动力投入计划及保证措施
- 电子账册联网监管培训手册
- 人教版语文七年级上第1课《在山的那边
- 对我区担保行业发展现状的思考与建议
- 平面四边形网格自动生成方法研究
- 2016年党课学习心得体会范文
- 如何设置电脑定时关机
- 全球最美人妖排行榜新鲜出炉
- 社会实践调查报告及问卷
- Visual Basic习题集
- 《鱼我所欲也》课件2
- 浙江省会计从业资格考试试卷
- 全遥控数字音量控制的D 类功率放大器资
- 鞍钢宪法与后福特主义
- 电表的改装与校准实验报告(1)
- 2014年高考理科数学真题解析分类汇编:
- Windows 7 AIK 的使用
- 风电场全场停电事故应急处置方案
- 化工原理选填题题库(下)
- 关于产学研合作教育模式的学习与思考
- 西安先锋公馆项目前期定位报告




