ImageVerifierCode 换一换
格式:DOCX , 页数:119 ,大小:230.73KB ,
资源ID:23005371      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/23005371.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(C语言图形编程.docx)为本站会员(b****2)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

C语言图形编程.docx

1、C语言图形编程C语言图形编程(一、字符屏幕) 2006-4-30 23:56:00 作者:zhihuiluck 一、屏幕操作函数1. clrscr()清除字符窗口函数2. window()字符窗口函数3. gotoxy()光标定位函数4. clreol() 清除光标行尾字符函数5. insline() 插入空行函数6. delline() 删除一行函数7. gettext() 拷进文字函数8. puttext() 拷出文字函数9. movetext() 移动文字函数二、字符属性函数10. textmode() 文本模式函数11. highvideo()高亮度函数 12. lowvideo()

2、低亮度函数13. normvideo(void);14. textcolor() 文本颜色函数15. textattr() 文本属性函数16.textbackground() 文本背景函数三、 屏显状态函数17. wherex() 光标处x坐标函数18. wherey() 光标处y坐标函数19. gettextinfo() 获取文本窗口信息函数在Borland C+里面提供了字符屏幕和图形函数。字符屏幕的核心是窗口(Window),它是屏幕的活动部分,字符输出或显示在活动窗口中进行。窗口在缺省时,就是整个屏幕。窗口可以根据需要指定其大小。同样,对图形函数的操作,也提供了(Viewport)。也

3、就是说图形函数的操作都是在视口上进行。图形视口与字符窗口具有相同的特性,用户可以在屏幕上定义大小不同的视口,若不定义视口大小,它就是整个屏幕。窗口是在字符屏幕下的概念,只有字符才能在窗口中显示出来,这时用户可以访问的最小单位为一个字符。视口是在图形屏幕状态下的概念,文本与图形都可以在视口上显示,用户可访问的最小单位是一个像素(像素这一术语最初用来指显示器上最小的、单独的发光点单元。然而现在,其含义拓宽为指图形显示器上的最小可访问点)。字符和图形状态下,屏幕上的位置都是由它们的行与列所决定的。有一点须指出:字符状态左上角坐标为(1,1),但图形左上角坐标为(0,0)。了解字符屏幕和图形函数与窗口

4、和视口的关系是很重要的。例如,字符屏幕 光标位置函数gotoxy()将光标移到窗口的x,y位置上,这未必是相对于整个屏幕。下面介绍常用的几类字符屏幕函数的功能用途、操作方法及其例行程序。一、屏幕操作函数编写程序绘图经常要用到对字符屏幕进行操作。例如,在往屏幕上写字符之前,首先要将屏幕清除干净。又如,有时需要在屏幕上多处写上肉中刺样的字符内容,这时最好用屏幕拷贝来高效率地完成这一任务。对这些操作,Borland C+提供了一系列字符屏幕操作函数来实现。1. clrscr()清除字符窗口函数功能:函数clrscr()清除整个当前字符窗口,并且把光标定位于左上角(1,1)处。用法:此函数调用方式为

5、void clrscr(void);说明:括号中void 表示无参数。该函数相应的头文件为conio.h返回值:无例:使用这个函数的例子见4.clreol()函数的实例中。2. window()字符窗口函数功能: 函数window()用于在指定位置建立一个字符窗口。用法: 此函数调用方式为 void window(int left,int top,int right,int bottom);说明: 函数中参数left,top为窗口左上角坐标;right,bottom为其右下角坐标。若有一个坐标是无效的,则window()函数不起作用。一旦该函数调用成功,那么所有定位坐标都是相对于窗口的,而不是

6、相对于整个屏幕。但是建立窗口所用的坐标总是相对整个屏幕的绝对坐标,而不是相对当前窗口的相对坐标。这样用户就可以根据各种需要建立多个互不嵌套的窗口。此函数的头文件为conio.h。返回值:无例: 调用这个函数的实现例见3.gotoxy()函数的例子中。3. gotoxy()光标定位函数功能: 函数gotoxy()将字屏幕上的光标移到当前窗口指定的位置上。用法: 这个函数调用方式为void gotoxy(int x,int y);说明: 括号里x,y是, 光标定位的坐标,如果其中一个坐标值无效(如坐标超界),那么光标不会移动。此函数在字符状态(有时称为文本状态)下经常用到 ,其相应的头文件为con

7、io.h返回值:无例: 下面程序建立两个窗口,然后在窗口里显示字符,字符的位置是调用该函数确定的。i ncludeconio.hvoid border(int startx,int starty,int endx,int endy)register int i;gotoxy(1,1);for(i=0;i=endx-startx;i+)putch(-);gotoxy(1,endy-starty);for(i=0;i=endx-startx;i+)putch(-);for(i=2;ivoid main()register int i;gotoxy(6,8);printf(This is a tes

8、t of the clreol() function.);getch();gotoxy(6,8);clreol();for(i=0;i20;i+)printf(Hellon);getch();clrscr();5. insline() 插入空行函数功能: 函数insline()插入一空行到当前光标所在行上,同时光标以下的所有行都向下顺移一行。用法: 此函数的调用方式为void insline(void);说明: 该函数只用于文本方式,并且在当了符窗口才有效。这个函数的对应头文件是 conio.h返回值:无例: 程序给出了insline()函数的用法。i nclude conio.hvoid m

9、ain()registser int i;clrscr();for(i=1;i24;i+)gotoxy(1,i);printf(This is line %dn,i);getch();gotoxy(1,10);insline();getch();6. delline() 删除一行函数功能: 函数delline()删除当前窗口内光标所在行,同时把该行下面 所有行都上移一行。用法: 此函数调用方式为 void delline(void);说明: 注意,如果当前窗口小于整个屏幕,那么该函数只影响到窗口内的字符。这个函数相应的头部文件是conio.h返回值: 无例:先在屏幕上显示16行文字,然后删除第

10、4行i nclude conio.hvoid main()register int i;clrscr();for(i=0;i16;i+) printf(line %dn,i);getch();gotoxy(1,4);delline();getch();7.gettext() 拷进文字函数功能: 函数gettext()用于文本状态下将屏幕上矩形域内的文字拷进内存。用法: 该函数调用方式为 int gettext(int left,int top,int right,int bottom,void *buffer);说明: 函数中参数left,top为矩形区域的左上角坐标,right,bottom

11、为其右下角坐标,这些坐标是屏幕的绝对坐标,不是窗口的相对坐标。buffer指针必须指向一个足够保存该矩形域内文字的内存。所用内存大小按下式计算:点头用字节数=矩形哉内的行数矩形域的列数2这里将行数乘以列数再乘以2的原因是保存屏幕上每个字符要用两个字节存储单元,一个字节存储单元存放字符本身,而另一个存放其属性。此函数相应的头文件是 conio.h返回值: 若函数调用成功则返回1,否则返顺0。例: 把屏幕左上角点(1,1)和右下角点(10,10)的区域拷贝到buf指向的内存中去。buf=(char *)malloc(10*10*2);if(!buf)gettext(1,1,10,10,buf);8

12、. puttext() 拷出文字函数功能: 函数puttext()把先前由gettext()保存到buffer指向的内存中的文字拷出到屏幕上一个矩形区域中。用法: 此函数调用方式为 int puttext(int left,int top,int right,int bottom,void *buffer);说明: 函数里left,top为给出的屏幕上矩形区域的左上角点,right,bottom为其右下角点,其坐标是用屏幕的绝对坐标,而不是用窗口的相对坐标。该函数相应的头文件为conio.h返回值: 函数调用成功返回值为1,否则返回0。例: 屏幕上某个区域内容拷进buf指向的内存中,然后又将这

13、些文字拷出到屏幕上新位置。buf=(char *)malloc(10*10*2);gettext(1,1,10,10,buf);puttext(16,16,30,30,buf);9. movetext() 移动文字函数功能: 函数movetext()将屏幕上一个矩形区域的文字移到另一个区域上。用法: 该函数调用方式为 int movetext(int left,int top,int right,int bottom,int newleft,int newtop);说明: 上面left,top为矩形区域上角坐标,right,bottom为其右下角坐标,newleft,newright为移动到区

14、域左上角坐标。这些坐标是屏幕的绝对坐标,不是窗口的相对坐标。若要把屏幕上一段文字移到屏幕的另一位置,那么使用movetext()函数比用gettext()然后再用puttext()效率更高。此函数相应的头文件是conio.h返回值: 如果有一个以上坐标无效,那么函数返回值为0,否则返回1。列: 把屏幕左上角点(8,8),右下角点(20,20)的矩形区域文字移动到左上角点(10,10)的位置上:movetext(8,8,20,20,10,10);10. textmode() 文本模式函数功能: 函数textmode()针屏幕设置为文本模式(或者说字符状态)。用法: 函数调用方式为 void te

15、xtmode(int mode);说明: 参数mode必须为表1-2中所示的模式之一以用模式名(符号值),也可以用其等价的整数值。表1-2 文本模式-模式名(符号值)等价整数值说明BW40040列黑白C 40140列彩色BW80280列黑白C 80380列彩色MONO780列单色LASTMODE-1上次模式-调用该函数后,屏幕复位,并且所有字符的属性恢复其缺省值。此函数对应的头文件是conio.h返回值: 无例: 把屏幕设置为80列彩色模式textmode(C80);二、字符属性函数用户可以设置字符显示的高亮度或低亮度的写的符闪烁及其背景颜色等。具有这些操作的函数称为字符属性函数。除了仅支持单

16、模式和单色的显示卡外,字符属性函数适用于其余所有的显示卡。11. highvideo()高亮度函数功能: 函数highvideo()设置屏幕为高亮度显示。用法: 此函数调用方式为void highvideo(void);说明: 调用该函数后,写到屏幕上的字符是高亮度的。此函数只适用于文本模式状态(或说字符屏幕状态)。这个函数对应的头文件为 conio.h返回值: 无例: 设置屏幕显示为高亮度的。highvideo();12. lowvideo() 低亮度函数功能: 函数lowvideo()设置屏幕为低亮度显示。用法: 该函数调用方式为void lowvideo(void);说明: 调用该函数后

17、,此时写到屏幕上的字符是低亮度的。这个函数只适用于文本模式状态(或说字符屏幕状态)。此函数相应的头文件是 conio.h返回值: 无例: 设置屏幕显示为低亮度的lowvideo();13. normvideo(void);功能: 函数normvideo()设置屏幕为正常亮度显示。用法: 这个函数调用方式为void normvideo(void);说明: 调用该函数后,此时写到屏幕上的字符是正常亮度的,该函数只适用于文本模式状态(或说字符状屏幕状态)。此函数相应的头文件为conio.h返回值: 无例: 设置屏幕显示为正常亮度。normvideo();14. textcolor() 文本颜色函数功

18、能: 函数textcolor()设置字符屏幕下文本颜色(或字符颜色),它也可以用于使字符闪烁。用法: 这个函数调用方式为void textcolor(int color);说明: 函数中参数color的有效值可取表1-3中的颜色名(即宏名)或等价值。表1-3 颜色名与等价值-名等价值含 义BLACK0黑BLUE1蓝GREEN2绿CYAN3青RED4红MAGENTA5洋红BROWN6棕LIGHTGRAY7淡灰DRAKGRAY8深灰LIGHTBLUE9淡蓝LIGHTGREEN10淡绿LIGHTCYAN11淡青LIGHTRED12淡红LIGHTMAGENTA13淡洋红YELLOW14黄WHITE15

19、白BLINK128闪烁-textcolor()函数执行后,只影响其后输出探险符颜色,而不改变已经在当前屏幕上的其它字符颜色。显然,如果需要输出的字符闪烁,只要将函数中参数color取为BLINK即可,如果要使字符带颜色闪烁,就必须将所选的颜色值与128作“或”运算。此函数相应的头文件是 conio.h返回值: 无例: 下面程序段中第一条语句使输出的字符闪烁,第三条语句使字符输出为经色同时闪烁:textcolor(BLINK);printf(hello);textcolor(RED|BLINK);15. textattr() 文本属性函数功能: 函数textattr()用于设置文本属性,即字符背

20、景颜色、字符本身颜色和字符闪烁与否。用法: 函数调用方式为void textattr(int attribute);说明: 设置字符背景颜色属性字节的最简单方法是,用所选的背景颜色值乘以16再与字符颜色值作按位或(OR)运算。例如需要红色背景、绿色字符,就设置成RED*16|GREEN,若还要字符闪烁,就把背景颜色值、字符颜色值与闪烁值一起按位作或运算。如蓝背景、黄字符且闪烁,就设置成为:YELLO|128|BLUE*16第0位用于设置字符颜色。此函数相应的头文件为conio.h返回值: 无例: 设置背景为蓝色、字符为红色并且字符闪烁:textattr(RED|128|BLUE*16);16.

21、textbackground() 文本背景函数功能: 函数textbackground()设置字符屏幕下文本背景颜色(或字符背景颜色)。用法: 此函数调用方式为void textbackground(int bcolor);说明: 参数bcolor 的有效值取表1-4背景颜色(即宏名)或等价值。表1-4 背景颜色与等价值-背景颜色等价值含义-BLACK0黑BLUE1蓝GREEN2绿CYAN3青RED4红MAGENTA5洋红BROWN6棕-调用该函数只影响后续写的字符背景颜色,而不改变当前显示在屏幕上的字符背景颜色。这个函数对应的头文件是conio.h返回值: 无例: 设置文本背景颜色为蓝色:t

22、extbackground(BLUE);三、 屏显状态函数这里提供三个在文本模式下屏幕显示状态的函数17. wherex() 光标处x坐标函数功能: 函数wherex()返回当前窗口中光标处横向坐标。用法: 此函数调用方式为int wherex(void);说明: 这个函数调用无参数,其对应的头文件是conio.h返回值: 函数调用成功,返回光标处x坐标值。例: 调用这个函数的实例见18.wherey()函数的例中。18. wherey() 光标处y坐标函数功能: 函数wherey()返回当前窗口中光标处纵向坐标。用法: 该函数调用方式为int wherey(void);说明: 此函数调用无参

23、数,其相应的头文件是conio.h返回值: 函数调用成功,返回光标处y坐标值。例: 调作函数wherex()与wherey(),返回当前光标处x坐标与y坐标,并赋给整型变量xpos ,ypos。int xpos,ypos;xpos=wherex();ypos=wherey();19. gettextinfo() 获取文本窗口信息函数功能: 函数gettextinfo()获取当前文本窗口信息,并存放在实参结构中。用法: 函数调用方式为void gettextinfo(struct text-info *info);说明: 函数中参数info 为struct text-info结构型指针,struct text-info结构在此函数相应的头文件中定义为:struct text-infounsigned char winleft;/ 窗口左上角x坐标unsigned char wintop;/ 窗口左上角y坐标unsigned char winright;/ 窗口右下角x坐标unsigned char winbottom;/ 窗口右下角y

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1