第11章 Turbo C图形.ppt
《第11章 Turbo C图形.ppt》由会员分享,可在线阅读,更多相关《第11章 Turbo C图形.ppt(30页珍藏版)》请在三一文库上搜索。
1、11.1 图形模式的初始化及相关函数 当使用不同品牌的显示器(适配器)时,它们所能达到的图形分辨率是不一样的。即使是同一显示器(适配器),在不同模式下也会有不同分辨率。就像使用Windows操作系统时,可以把显示器的图形分辨率设置为800600或1024768。因此,使用Turbo C在屏幕上作图之前,必须根据显示器(适配器)的种类将显示器设置成某种图形模式。在未设置图形模式之前,Turbo C系统默认屏幕为文本模式(80列,25行字符模式),此时所有绘图函数均不能工作。,要将屏幕设置为图形模式,应使用图形初始化函数,把适当的图形驱动程序装入内存,并设置绘图函数所用的显示模式。该函数的原型为:
2、 void initgraph( int *driver, int *mode, char *path ); 其中: driver用来指定图形驱动程序。 mode用来指定显示模式。 path图形驱动程序所在的路径。若没有指定路径或在指定路径中没有找到驱动程序,就在当前目录下寻找。 【例11.1】使用图形初始化函数设置VGA高分辨率图形模式。,正如我们在前面提到的,要进行图形显示,首先要把适合于显示卡的图形驱动程序装入内存。如果图形驱动程序未装入内存,那么绘图函数就不能工作。但是对于用户来说,可能并不知道所用的显示适配器的类型,或者希望编写的程序能用于不同的机器上。因此,Turbo C为我们提供
3、了一个自动检测显示器硬件的函数,其原型为: void detectgraph( int *driver, int *mode ); 执行该函数后,系统将返回适合于该显示卡的图形驱动程序的等价值,并将值存放在driver指向的整型变量中,同时把mode所指向的整型变量设置为显示卡支持的最高有效模式的等价值(即该显示卡能支持的最高分辨率)。 【例11.2】自动进行硬件测试后进行图形初始化。,在【例11.2】程序中,我们先调用显示适配器检测函数detectgraph( ),对显示适配器型号进行检测,然后再用图形初始化函数initgraph( ),对显示适配器进行初始化设置。Turbo C还提供了一种
4、更简单的方法,即让driver= DETECT然后再调用initgraph( )函数就行了,系统会自动将图形模式设置成“最佳”模式,如对于VGA显示卡,会设置成640480,16种颜色。采用这种方法后,【例11.2】可改为: 【例11.3】自动设置图形卡工作模式。,11.2 屏幕颜色设置和清屏 对于计算机屏幕,我们可以通过使用Turbo C提供的一些绘图函数来设置其颜色。对于屏幕颜色的设置,分为背景色的设置和前景色的设置。在Turbo C中分别用下面两个函数: 设置背景色: void setbkcolor( int color ); 设置作图色: void setcolor( int colo
5、r ); 其中,color为图形方式下颜色的规定数值,对EGA、VGA显示器适配器,有关颜色的符号常数及数值如表11.1所示。,例如,要把背景色置为淡蓝色,可以执行: setbackcolor( LIGHTBLUE ); 要把前景色设置为红色,可以执行: setcolor( 4 ); 利用C程序除了可以设置屏幕的前景色、背景色,或者在屏幕上画椭圆、立方体外,还可以清除屏幕上已显示的内容。这时要使用清屏函数,其函数原型如下: voide cleardevice( void ); 例如,要清除当前整个屏幕,可以执行: cleardevice( ); 【例11.4】图形颜色的使用。,11.3 基本图
6、形绘制 11.3.1 画点与位置坐标函数 (1) putpixel( )画像素点函数 功能:在图形模式下屏幕上画一个像素点。 说明:参数x、y为像素点在屏幕上的坐标位置,color是该像素点的颜色,它可以是颜色符常量,也可以是整型色彩值。 返回值:无 例如,要在屏幕上(6,8)处画一个红色像素点,可以执行: putpixel( 6,8,RED );,(2)有关坐标位置的函数 int getmaxx( void ); 功能:返回当前图形模式下的最大x坐标,即最大横向坐标。 说明:此函数独立于图形视口设置,仅取决于显示卡的显示模式相应的分辨率。 int getmaxy( void ); 功能:返回
7、当前图形模式下的最大y坐标,即最大纵向坐标。 说明:此函数独立于图形视口设置,仅取决于显示卡的显示模式相应的分辨率。 int getx( void ); 返回值:返回当前图形光标在x轴的位置。,void gety( void ); 返回值:返回当前图形光标在y轴的位置。 void moveto( int x, int y ); 功能:移动图形光标到(x, y)点,不画点,在移动过程中亦不画点。 void moverel( int dx, int dy ); 功能:把光标从现在的位置(x, y)移动到(x+dx, y+dy)的位置,移动过程中不画点。,11.3.2 画直线、圆、椭圆与多边形函数
8、(1)画直线 void line( int x0, int y0, int x1, int y1 ); 功能:画一条从点(x0, y0)到(x1, y1)的直线。 void lineto( int x, int y ); 功能:画一条从当前图形光标到指定点(x, y)的直线。 void linerel( int dx, int dy ); 功能:画一条从当前图形光标点(x, y)到点(x+dx, y+dy)的直线。,(2)画圆、圆弧和椭圆弧 void circle( int x, int y, int r ); 功能:以(x, y)为圆心,r为半径画一个圆。 void arc( int x,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第11章 Turbo C图形 11 图形
链接地址:https://www.31doc.com/p-3418959.html