- 1、本文档共30页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第十一章 Turbo C图形
11.1 图形模式的初始化及相关函数
当使用不同品牌的显示器(适配器)时,它们所能达到的图形分辨率是不一样的。即使是同一显示器(适配器),在不同模式下也会有不同分辨率。就像使用Windows操作系统时,可以把显示器的图形分辨率设置为800×600或1024×768。因此,使用Turbo C在屏幕上作图之前,必须根据显示器(适配器)的种类将显示器设置成某种图形模式。在未设置图形模式之前,Turbo C系统默认屏幕为文本模式(80列,25行字符模式),此时所有绘图函数均不能工作。
; 要将屏幕设置为图形模式,应使用图形初始化函数,把适当的图形驱动程序装入内存,并设置绘图函数所用的显示模式。该函数的原型为:
void initgraph( int *driver, int *mode, char *path );
其中:
driver用来指定图形驱动程序。
mode用来指定显示模式。
path图形驱动程序所在的路径。若没有指定路径或在指定路径中没有找到驱动程序,就在当前目录下寻找。
【例11.1】使用图形初始化函数设置VGA高分辨率图形模式。
; 正如我们在前面提到的,要进行图形显示,首先要把适合于显示卡的图形驱动程序装入内存。如果图形驱动程序未装入内存,那么绘图函数就不能工作。但是对于用户来说,可能并不知道所用的显示适配器的类型,或者希望编写的程序能用于不同的机器上。因此,Turbo C为我们提供了一个自动检测显示器硬件的函数,其原型为:
void detectgraph( int *driver, int *mode );
执行该函数后,系统将返回适合于该显示卡的图形驱动程序的等价值,并将值存放在driver指向的整型变量中,同时把mode所指向的整型变量设置为显示卡支持的最高有效模式的等价值(即该显示卡能支持的最高分辨率)。
【例11.2】自动进行硬件测试后进行图形初始化。
; 在【例11.2】程序中,我们先调用显示适配器检测函数detectgraph( ),对显示适配器型号进行检测,然后再用图形初始化函数initgraph( ),对显示适配器进行初始化设置。Turbo C还提供了一种更简单的方法,即让driver= DETECT然后再调用initgraph( )函数就行了,系统会自动将图形模式设置成“最佳”模式,如对于VGA显示卡,会设置成640×480,16种颜色。采用这种方法后,【例11.2】可改为:
【例11.3】自动设置图形卡工作模式。
;11.2 屏幕颜色设置和清屏
对于计算机屏幕,我们可以通过使用Turbo C提供的一些绘图函数来设置其颜色。对于屏幕颜色的设置,分为背景色的设置和前景色的设置。在Turbo C中分别用下面两个函数:
设置背景色:
void setbkcolor( int color );
设置作图色:
void setcolor( int color );
其中,color为图形方式下颜色的规定数值,对EGA、VGA显示器适配器,有关颜色的符号常数及数值如表11.1所示。; 例如,要把背景色置为淡蓝色,可以执行:
setbackcolor( LIGHTBLUE );
要把前景色设置为红色,可以执行:
setcolor( 4 );
利用C程序除了可以设置屏幕的前景色、背景色,或者在屏幕上画椭圆、立方体外,还可以清除屏幕上已显示的内容。这时要使用清屏函数,其函数原型如下:
voide cleardevice( void );
例如,要清除当前整个屏幕,可以执行:
cleardevice( );
【例11.4】图形颜色的使用。
;11.3 基本图形绘制
11.3.1 画点与位置坐标函数
(1) putpixel( )画像素点函数
功能:在图形模式下屏幕上画一个像素点。
说明:参数x、y为像素点在屏幕上的坐标位置,color是该像素点的颜色,它可以是颜色符常量,也可以是整型色彩值。
返回值:无
例如,要在屏幕上(6,8)处画一个红色像素点,可以执行:
putpixel( 6,8,RED );
; (2)有关坐标位置的函数
int getmaxx( void );
功能:返回当前图形模式下的最大x坐标,即最大横向坐标。
说明:此函数独立于图形视口设置,仅取决于显示卡的显示模式相应的分辨率。
?
int getmaxy( void );
功能:返回当前图形模式下的最大y坐标,即最大纵向坐标。
说明:此函数独立于图形视口设置,仅取决于显示卡的显示模式相应的分辨率。
?
文档评论(0)