文档详情

C语言图形编程.docx

发布:2024-07-24约5.75万字共57页下载文档
文本预览下载声明

C语言图形编程(一、字符屏幕)

在BorlandC++里面提供了字符屏幕和图形函数。字符屏幕的核心是窗口(Window),它是屏幕的活动部分,字符输出或显示在活动窗口中进行。窗口在缺省时,就是整个屏幕。窗口可以根据需要指定其大小。同样,对图形函数的操作,也提供了(Viewport)。也就是说图形函数的操作都是在视口上进行。图形视口与字符窗口具有相同的特性,用户可以在屏幕上定义大小不同的视口,若不定义视口大小,它就是整个屏幕。

窗口是在字符屏幕下的概念,只有字符才能在窗口中显示出来,这时用户可以访问的最小单位为一个字符。视口是在图形屏幕状态下的概念,文本与图形都可以在视口上显示,用户可访问的最小单位是一个像素(像素这一术语最初用来指显示器上最小的、单独的发光点单元。然而现在,其含义拓宽为指图形显示器上的最小可访问点)。

字符和图形状态下,屏幕上的位置都是由它们的行与列所决定的。有一点须指出:字符状态左上角坐标为(1,1),但图形左上角坐标为(0,0)。

了解字符屏幕和图形函数与窗口和视口的关系是很重要的。例如,字符屏幕光标位置函数gotoxy()将光标移到窗口的x,y位置上,这未必是相对于整个屏幕。下面介绍常用的几类字符屏幕函数的功能用途、操作方法及其例行程序。

一、屏幕操作函数编写程序绘图经常要用到对字符屏幕进行操作。例如,在往屏幕上写字符之前,首先要将屏幕清除干净。又如,有时需要在屏幕上多处写上肉中刺样的字符内容,这时最好用屏幕拷贝来高效率地完成这一任务。对这些操作,BorlandC++提供了一系列字符屏幕操作函数来实现。

clrscr()清除字符窗口函数功能:函数clrscr()清除整个当前字符窗口,并且把光标定位于左上角(1,1)处。用法:此函数调用方式为voidclrscr(void);

说明:括号中void表示无参数。该函数相应的头文件为conio.h

返回值:无

例:使用这个函数的例子见4.clreol()函数的实例中。

window()字符窗口函数功能:函数window()用于在指定位置建立一个字符窗口。用法:此函数调用方式为voidwindow(intleft,inttop,intright,intbottom);

说明:函数中参数left,top为窗口左上角坐标;right,bottom为其右下角坐标。

若有一个坐标是无效的,则window()函数不起作用。一旦该函数调用成功,那么所有定位坐标都是相对于窗口的,而不是相对于整个屏幕。但是建立窗口所用的坐标总是相对整个屏幕的绝对坐标,而不是相对当前窗口的相对坐标。这样用户就可以根据各种需要建立多个互不嵌套的窗口。

此函数的头文件为conio.h。返回值:无

例:调用这个函数的实现例见3.gotoxy()函数的例子中。

gotoxy()光标定位函数功能:函数gotoxy()将字屏幕上的光标移到当前窗口指定的位置上。用法:这个函数调用方式为voidgotoxy(intx,inty);

说明:括号里x,y是,光标定位的坐标,如果其中一个坐标值无效(如坐标超界),那么光标不会移动。此函数在字符状态(有时称为文本状态)下经常用到,其相应的头文件为conio.h

返回值:无

例:下面程序建立两个窗口,然后在窗口里显示字符,字符的位置是调用该函数确定的。

#includeconio.h

voidborder(intstartx,intstarty,intendx,intendy)

{

registerinti;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;i=endy-starty;i++){gotoxy(1,i);

putch(1);

gotoxy(endx-startx+1,i);putch(1);

}

}

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);printf(window2);getch();

}

clreol()清除光标行尾字符函数功能:函数clreol()在当前字符窗口中清除从光标位置到行尾的所有字符,而光标位置保持不变。

用法:它的调用方式为

显示全部
相似文档