c语言图形编程Word下载.docx
- 文档编号:16634098
- 上传时间:2022-11-25
- 格式:DOCX
- 页数:9
- 大小:20.48KB
c语言图形编程Word下载.docx
《c语言图形编程Word下载.docx》由会员分享,可在线阅读,更多相关《c语言图形编程Word下载.docx(9页珍藏版)》请在冰豆网上搜索。
有一点须指出:
字符状态左上角坐标为(1,1),但图形左上角坐标为(0,0)。
了解字符屏幕和图形函数与窗口和视口的关系是很重要的。
例如,字符屏幕光标位置函数gotoxy()将光标移到窗口的x,y位置上,这未必是相对于整个屏幕。
下面介绍常用的几类字符屏幕函数的功能用途、操作方法及其例行程序。
编写程序绘图经常要用到对字符屏幕进行操作。
例如,在往屏幕上写字符之前,首先要将屏幕清除干净。
又如,有时需要在屏幕上多处写上肉中刺样的字符内容,这时最好用屏幕拷贝来高效率地完成这一任务。
对这些操作,BorlandC++提供了一系列字符屏幕操作函数来实现。
1.clrscr()清除字符窗口函数
功能:
函数clrscr()清除整个当前字符窗口,并且把光标定位于左上角(1,1)处。
用法:
此函数调用方式为voidclrscr(void);
说明:
括号中void表示无参数。
该函数相应的头文件为conio.h
返回值:
无
例:
使用这个函数的例子见4.clreol()函数的实例中。
2.window()字符窗口函数
函数window()用于在指定位置建立一个字符窗口。
此函数调用方式为voidwindow(intleft,inttop,intright,intbottom);
函数中参数left,top为窗口左上角坐标;
right,bottom为其右下角坐标。
若有一个坐标是无效的,则window()函数不起作用。
一旦该函数调用成功,那么所有定位坐标都是相对于窗口的,而不是相对于整个屏幕。
但是建立窗口所用的坐标总是相对整个屏幕的绝对坐标,而不是相对当前窗口的相对坐标。
这样用户就可以根据各种需要建立多个互不嵌套的窗口。
此函数的头文件为conio.h。
调用这个函数的实现例见3.gotoxy()函数的例子中。
3.gotoxy()光标定位函数
函数gotoxy()将字屏幕上的光标移到当前窗口指定的位置上。
这个函数调用方式为voidgotoxy(intx,inty);
括号里x,y是,光标定位的坐标,如果其中一个坐标值无效(如坐标超界),那么光标不会移动。
此函数在字符状态(有时称为文本状态)下经常用到,其相应的头文件为conio.h
下面程序建立两个窗口,然后在窗口里显示字符,字符的位置是调用该函数确定的。
#include"
conio.h>
voidborder(intstartx,intstarty,intendx,intendy)
{
registerinti;
gotoxy(1,1);
for(i=0;
i<
=endx-startx;
i++)
putch('
-'
);
gotoxy(1,endy-starty);
for(i=2;
=endy-starty;
i++){
gotoxy(1,i);
1'
gotoxy(endx-startx+1,i);
}
}
main()
voidborder(int,int,int,int);
clrscr();
window(6,8,38,12);
border(6,8,38,12);
gotoxy(2,2);
printf("
window1"
window(8,16,40,24);
border(8,16,40,24);
gotoxy(3,2);
window2"
getch();
4.clreol()清除光标行尾字符函数
函数clreol()在当前字符窗口中清除从光标位置到行尾的所有字符,而光标位置保持不变。
它的调用方式为voidclreol(void);
此函数的相应头文件为conio.h
程序中使用了函数clreol()和clrscr()
#include"
voidmain()
gotoxy(6,8);
Thisisatestoftheclreol()function."
clreol();
20;
Hello\n"
5.insline()插入空行函数
函数insline()插入一空行到当前光标所在行上,同时光标以下的所有行都向下顺移一行。
此函数的调用方式为voidinsline(void);
该函数只用于文本方式,并且在当了符窗口才有效。
这个函数的对应头文件是conio.h
程序给出了insline()函数的用法。
conio.h"
registserinti;
for(i=1;
24;
{
Thisisline%d\n"
i);
gotoxy(1,10);
insline();
6.delline()删除一行函数
函数delline()删除当前窗口内光标所在行,同时把该行下面所有行都上移一行。
此函数调用方式为voiddelline(void);
注意,如果当前窗口小于整个屏幕,那么该函数只影响到窗口内的字符。
这个函数相应的头部文件是conio.h
无
先在屏幕上显示16行文字,然后删除第4行
16;
i++)printf("
line%d\n"
gotoxy(1,4);
delline();
7.gettext()拷进文字函数
函数gettext()用于文本状态下将屏幕上矩形域内的文字拷进内存。
该函数调用方式为intgettext(intleft,inttop,intright,intbottom,void*buffer);
函数中参数left,top为矩形区域的左上角坐标,right,bottom为其右下角坐标,这些坐标是屏幕的绝对坐标,不是窗口的相对坐标。
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.puttext()拷出文字函数
函数puttext()把先前由gettext()保存到buffer指向的内存中的文字拷出到屏幕上一个矩形区域中。
此函数调用方式为intputtext(intleft,inttop,intright,intbottom,void*buffer);
函数里left,top为给出的屏幕上矩形区域的左上角点,right,bottom为其右下角点,其坐标是用屏幕的绝对坐标,而不是用窗口的相对坐标。
函数调用成功返回值为1,否则返回0。
屏幕上某个区域内容拷进buf指向的内存中,然后又将这些文字拷出到屏幕上新位置。
gettext(1,1,10,10,buf);
puttext(16,16,30,30,buf);
9.movetext()移动文字函数
函数movetext()将屏幕上一个矩形区域的文字移到另一个区域上。
该函数调用方式为intmovetext(intleft,inttop,intright,intbottom,intnewleft,intnewtop);
上面left,top为矩形区域上角坐标,right,bottom为其右下角坐标,newleft,newright为移动到区域左上角坐标。
这些坐标是屏幕的绝对坐标,不是窗口的相对坐标。
若要把屏幕上一段文字移到屏幕的另一位置,那么使用movetext()函数比用gettext()然后再用puttext()效率更高。
此函数相应的头文件是conio.h
如果有一个以上坐标无效,那么函数返回值为0,否则返回1。
列:
把屏幕左上角点(8,8),右下角点(20,20)的矩形区域文字移动到左上角点(10,10)的位置上:
movetext(8,8,20,20,10,10);
10.textmode()文本模式函数
函数textmode()针屏幕设置为文本模式(或者说字符状态)。
函数调用方式为voidtextmode(intmode);
参数mode必须为表1-2中所示的模式之一⑴以用模式名(符号值),也可以用其等价的整数值。
表1-2文本模式
----------------------------------------------------------------
模式名(符号值)
等价整数值
说
明
BW40
0
40列黑白
C40
1
40列彩色
BW80
2
80列黑白
C80
3
80列彩色
MONO
7
80列单色
LASTMODE
-1
上次模式
调用该函数后,屏幕复位,并且所有字符的属性恢复其缺省值。
此函数对应的头文件是conio.h
把屏幕设置为80列彩色模式
textmode(C80);
用户可以设置字符显示的高亮度或低亮度的写的符闪烁及其背景颜色等。
具有这些操作的函数称为字符属性函数。
除了仅支持单模式和单色的显示卡外,字符属性函数适用于其余所有的显示卡。
11.highvideo()高亮度函数
函数highvideo()设置屏幕为高亮度显示。
此函数调用方式为voidhighvideo(void);
调用该函数后,写到屏幕上的字符是高亮度的。
此函数只适用于文本模式状态(或说字符屏幕状态)。
这个函数对应的头文件为conio.h
设置屏幕显示为高亮度的。
highvideo();
12.lowvideo()低亮度函数
函数lowvideo()设置屏幕为低亮度显示。
该函数调用方式为voidlowvideo(void);
调用该函数后,此时写到屏幕上的字符是低亮度的。
这个函数只适用于文本模式状态(或说字符屏幕状态)。
此函数相应的头文件是conio.h
设置屏幕显示为低亮度的
lowvideo();
13.normvideo(void);
函数normvideo()设置屏幕为正常亮度显示。
这个函数调用方式为voidnormvideo(void);
调用该函数后,此时写到屏幕上的字符是正常亮度的,该函数只适用于文本模式状态(或说字符状屏幕状态)。
此函数相应的头文件为conio.h
设置屏幕显示为正常亮度。
normvideo();
14.textcolor()文本颜色函数
函数textcolor()设置字符屏幕下文本颜色(或字符颜色),它也可以用于使字符闪烁。
这个函数调用方式为voidtextcolor(intcolor);
函数中参数color的有效值可取表1-3中的颜色名(即宏名)或等价值。
表1-3颜色名与等价值
---------------------------------------------------
名
等价值
含义
BLACK
黑
BLUE
蓝
GREEN
绿
CYAN
青
RED
4
红
MAGENTA
5
洋红
BROWN
6
棕
LIGHTGRAY
淡灰
DRAKGRAY
8
深灰
LIGHTBLUE
9
淡蓝
LIGHTGREEN
10
淡绿
LIGHTCYAN
11
淡青
LIGHTRED
12
淡红
LIGHTMAGENTA
13
淡洋红
YELLOW
14
黄
WHITE
15
白
BLINK
128
闪烁
------------------------------------------------------------
textcolor()函数执行后,只影响其后输出探险符颜色,而不改变已经在当前屏幕上的其它字符颜色。
显然,如果需要输出的字符闪烁,只要将函数中参数color取为BLINK即可,如果要使字符带颜色闪烁,就必须将所选的颜色值与128作“或”运算。
下面程序段中第一条语句使输出的字符闪烁,第三条语句使字符输出为经色同时闪烁:
textcolor(BLINK);
hello"
textcolor(RED|BLINK);
15.textattr()文本属性函数
函数textattr()用于设置文本属性,即字符背景颜色、字符本身颜色和字符闪烁与否。
函数调用方式为voidtextattr(intattribute);
设置字符背景颜色属性字节的最简单方法是,用所选的背景颜色值乘以16再与字符颜色值作按位或(OR)运算。
例如需要红色背景、绿色字符,就设置成RED*16|GREEN,若还要字符闪烁,就把背景颜色值、字符颜色值与闪烁值一起
按位作或运算。
如蓝背景、黄字符且闪烁,就设置成为:
YELLO|128|BLUE*16
第0位用于设置字符颜色。
设置背景为蓝色、字符为红色并且字符闪烁:
textattr(RED|128|BLUE*16);
16.textbackground()文本背景函数
函数textbackground()设置字符屏幕下文本背景颜色(或字符背景颜色)。
此函数调用方式为voidtextbackground(intbcolor);
参数bcolor的有效值取表1-4背景颜色(即宏名)或等价值。
表1-4背景颜色与等价值
-------------------------------------------------
背景颜色
含
义
BLACK
BLUE
GREEN
CYAN
RED
MAGENTA
BROWN
调用该函数只影响后续写的字符背景颜色,而不改变当前显示在屏幕上的字符背景颜色。
这个函数对应的头文件是conio.h
设置文本背景颜色为蓝色:
textbackground(BLUE));
这里提供三个在文本模式下屏幕显示状态的函数
17.wherex()光标处x坐标函数
函数wherex()返回当前窗口中光标处横向坐标。
此函数调用方式为intwherex(void);
这个函数调用无参数,其对应的头文件是conio.h
函数调用成功,返回光标处x坐标值。
调用这个函数的实例见18.wherey()函数的例中。
18.wherey()光标处y坐标函数
函数wherey()返回当前窗口中光标处纵向坐标。
该函数调用方式为intwherey(void);
此函数调用无参数,其相应的头文件是conio.h
函数调用成功,返回光标处y坐标值。
调作函数wherex()与wherey(),返回当前光标处x坐标与y坐标,并赋给整型变量xpos,ypos。
intxpos,ypos;
xpos=wherex();
ypos=wherey();
19.gettextinfo()获取文本窗口信息函数
函数gettextinfo()获取当前文本窗口信息,并存放在实参结构中。
函数调用方式为voidgettextinfo(structtext-info*info);
函数中参数info为structtext-info结构型指针,structtext-info结构在此函数相应的头文件中定义为:
structtext-info{
unsignedcharwinleft;
//窗口左上角x坐标
unsignedcharwintop;
//窗口左上角y坐标
unsignedcharwinright;
//窗口右下角x坐标
unsignedcharwinbottom;
//窗口右下角y坐标
unsignedcharattribute;
//文本属性
unsignedcharnormattr;
//正常属性
unsignedcharcurrmode;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 图形 编程