图形程序设计

上传人:豆浆 文档编号:7995621 上传时间:2017-08-10 格式:PPT 页数:65 大小:398.50KB
返回 下载 相关 举报
图形程序设计_第1页
第1页 / 共65页
图形程序设计_第2页
第2页 / 共65页
图形程序设计_第3页
第3页 / 共65页
图形程序设计_第4页
第4页 / 共65页
图形程序设计_第5页
第5页 / 共65页
点击查看更多>>
资源描述

《图形程序设计》由会员分享,可在线阅读,更多相关《图形程序设计(65页珍藏版)》请在金锄头文库上搜索。

1、图形程序设计,郭建方,Turbo C为用户提供了一个功能很强的画图软件库,它又称为Borland图形接口(BGI),它包括图形库文件(graphics.lib),图形头文件(graphics.h)和许多图形显示器(图形终端)的驱动程序(如CGA.BGI、EGAVGA.BGI等)。及一些字符集的字体驱动程序(如goth.chr黑体字符集等)。编写图形程序时用到的一些图形库函数均在graphics.lib中,执行这些函数时,所需的有关信息(如宏定义等)则包含在graphics.h头文件中。,图形显示的坐标,显示器的屏幕如同一张坐标纸,在其上显示图形时,图形上任一点的位置均有确定的坐标,即可用x,y

2、坐标值来表示。,图形显示的坐标-象素,显示器显示的图形均由一些圆点组成(其亮度、颜色不同),这些点称为象素(或称象点),它们是组成图形的最小单位。象素的大小可以通过设置不同的显示方式来改变。象素在屏幕上的位置则可由其所在的x,y坐标来决定。,图形显示器与适配器,计算机中要显示的字符和图形均以数字形式存储在存储器中,而显示器接收的应是模拟信号。常用的显示器有三条模拟红绿兰颜色的模拟信号输入线,每条输入线的电压决定了颜色的亮度,只要能产生出可区分的电压来,它们不同的组合,便可使显示器显示出不同的颜色来。,图形显示器与适配器,插在PC微机插槽中的图形卡(即适配器),其作用就是将要显示的字符和图形以数

3、字形式存储在卡上的视频存储器VRAM中,再将其变成视频模拟信号送往相应适配的显示器进行显示,也即适配器在计算机主机和显示器之间起到了信息转换和视频发送作用。由于计算机配有的显示器种类不同,因而适配器种类不同,常用的几种适配器,1单色显示适配器(MDA);仅显示一种颜色,仅支持8025行的字符显示。2彩色图形适配器(CGA);这是PC/XT等微机配用的显示器图形卡,它可以产生单色或彩色字符和图形。3增强型图形适配器EGA);除支持CGA的四种显示模式外,还增加了分辨率为640200的16色显示方式, (EGAHI),也可显示16色。,常用的几种适配器,4视频图形阵列适配器(VGA);它是目前流行

4、的PC微机显示标准,它支持CGA,EGA的所有显示方式,但自己还有640480的高分辨显示方式(VGAHI)、640350的中分辨显示方式(VGAMED)和640200的低分辨显示方式(VGALO),它们均可有16种显示颜色可供选择。,常用的几种适配器,5TVGA;它是目前市面上最流行的PC 486,586微机配的显示器标准,在图形方式下,它可有640400,640480,800600,1024768及7681024等分辨率,可选颜色达256种,在文本方式下,可支持25、30、43、60行,132列的字符显示。它也兼容CGA、EGA、VGA的显示方式,由于Turbo C早于该产品出现,因而上述

5、增强了的显示方式均不支持,但对于高级编程者,可通过对TVGA各专用寄存器直接编程来实现这些功能。,常用的几种适配器,6PVGA;它是paradise VGA的缩写,它由Western Digital公司生产,有的叫SVGA(香港Surperking公司生产的386微机上使用)。还有称为EVGA(Extended VGA),它们和PVGA在软硬件上均是兼容的。PVGA完全兼容CGA、EGA、VGA的所有工作方式,它还有自己一些特有的工作模式,与TVGA类似。7XGA;XGA是IBM公司新推出的一种增强性图形适配器,它是VGA的换代产品,具有更高的分辨率和性能,它有和CGA,EGA,VGA全兼容的

6、工作方式,但显示速度却比VGA快一倍。,常用的几种适配器,8CVGA;这是国内研制的带有显示汉字功能的VGA图形适配器,它带有汉字字库,该适配器提供了和CGA、EGA、VGA全兼容的工作方式,还提供了在文本工作方式下的高分辨图形显示功能。在它的ROM BIOS中提供了INT10H的功能号为30H38H的功能调用,因而提供了方便的汉字处理功能。,显示器工作方式,文本方式或称字符显示方式图形显示方式它们的主要差别是显示存储器(VRAM)中存的信息不同。字符方式时,VRAM存放要显示字符的ASCII码,用它作为地址,取出字符发生器ROM(固定存储器)中存放的相应字符的图象(又称字模),变成视频信号在

7、显示器屏上进行显示。图形方式时,则要显示的图形的图象直接存在VRAM中,VRAM中某地址单元存放的数就表示了相应屏幕上某行和列上的象素及颜色。,Turbo C支持的适配器和图形模式,1MCGA(多色图形阵列);它和VGA是PS/2系列微机的主要适配器,MCGA功能上同CGA相似,它和CGA是部分兼容的,但有些功能又和VGA类似,可有640480的二色模式。2IBM8514;该适配器可插入PS/2微机中,它有较强的图形功能,最高分辨率可达1024768,可有256种颜色。3HERC;大力神公司生产的一种单色适配器,是PC系列微机早期的第三种显示标准(其它两种MDA和CGA),它采用720348高

8、分辨单色显示模式。4EGAMONO;EGA单色适配器,它只有一种640350单色显示模式。,图形系统的初始化,即要用什么类型的图形显示适配器的驱动程序,采用什么模式的图形方式(也就是相应程序的入口地址),适配器驱动程序的寻找路径名。注意:所用系统的显示适配器一定要支持所选用的显示模式,否则将出错。,图形系统的初始化图形系统的初始化函数,void far initgraph(int far *driver,int far *mode,char far *path_for_driver);,其中gdriver和gmode分别表示图形驱动器和模式,path是指图形驱动程序所在的目录路径。图形驱动程序

9、由TurboC出版商提供,文件扩展名为BGI。根据不同的图形适配器有不同的图形驱动程序。例如对于EGA、VGA图形适配器的图形驱动程序为EGAVGA.BGI。,图形系统的初始化图形系统检测函数,void far detectgraph(int far *graphdriver,int far *graphmode);,有时编程者并不知道所用的图形显示器适配器种类,而且我们为了将编写的程序可以用于不同图形驱动器,增强程序的通用性,我们通常不指定图形显示器适配器种类,而使用Turbo C提供了一个自动检测显示器硬件的函数, 其中gdriver和gmode意义同上。,例1:自动进行硬件测试后进行图形

10、初始化,#include graphics.h main( ) int gdriver, gmode; detectgraph(&gdriver, &gmode); /*自动测试硬件*/ printf(driver is %d, mode is %dn, gdriver,gmode); /*输出结果*/ getch(); initgraph(&gdriver, &gmode, ); /* 根据测试结果初始化图形*/ circle(320,240,50); circle(320,240,80); circle(320,240,110); getch(); closegraph(); ,上例程序中

11、先对图形显示器自动检测,然后再用图形初始化函数进行初始化设置。其中,closegraph()为退出图形状态的函数,其调用格式为:voidfarclosegraph(void);调用该函数后可退出图形状态而进入文本方式,并释放用于保存图形驱动程序和字体的系统内存。同时TurboC提供了一种更简单的初始化图形的方法,即用gdriver=DETECT语句后再跟initgraph()函数就行了。比如,上例可改为例2的样子。,例2:自动进行硬件测试后进行图形初始化,#include graphics.h main() int gdriver=DETECT, gmode; initgraph(&gdriv

12、er, &gmode, ); circle(320,240,50); circle(320,240,80); circle(320,240,110); getch(); closegraph(); ,屏幕颜色的设置,对于图形模式的屏幕颜色设置,同样分为背景色的设置和前景色的设置。在Turbo c中分别使用以下两个函数: void far setbkcolor (int color); 设置背景色 void far setcolor (int color); 设置作图色 其中color为图形方式下颜色的规定数值,符号常数及数值如下所示。,屏幕颜色的设置,符号常数 数值 含义 字符或背景BLACK

13、 0 黑 两者均可BLUE 1 兰 两者均可GREEN 2 绿 两者均可CYAN 3 青 两者均可RED 4 红 两者均可MAGENTA 5 洋红 两者均可BROWN 6 棕 两者均可LIGHTGRAY 7 淡灰 两者均可DARKGRAY 8 深灰 只用于字符LIGHTBLUE 9 淡兰 只用于字符LIGHTGREEN 10 淡绿 只用于字符LIGHTCYAN 11 淡青 只用于字符LIGHTRED 12 淡红 只用于字符LIGHTMAGENTA 13 淡洋红 只用于字符YELLOW 14 黄 只用于字符WHITE 15 白 只用于字符BLINK 128 闪烁 只用于字符,清除图形屏幕内容使用

14、清屏函数,其调用格式如下void far cleardevice(void);有关颜色设置、清屏函数的使用请看例3。,例3: #include stdio.h #include graphics.h main() int gdriver, gmode, i,j; gdriver=DETECT; initgraph(&gdriver, &gmode, ); /*图形初始化*/ setbkcolor(0); /*设置图形背景*/ cleardevice(); for(i=0; i=15; i+) setcolor(i); /*设置不同作图色*/ circle(319, 239, 20+i*15); /*画半径不同的圆*/ delay(3000); /*延迟3000毫秒*/ ,for(i=0; i=15; i+) setbkcolor(i); /*设置不同背景色*/ cleardevice(); for(j=0; j=15;j+) setcolor(j); /*设置不同作图色*/ circle(319, 239, 20+j*15); /*画半径不同的圆*/ delay(3000); getch(); closegraph(); ,

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

当前位置:首页 > 行业资料 > 其它行业文档

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