欢迎来到三一文库! | 帮助中心 三一文库31doc.com 一个上传文档投稿赚钱的网站
三一文库
全部分类
  • 研究报告>
  • 工作总结>
  • 合同范本>
  • 心得体会>
  • 工作报告>
  • 党团相关>
  • 幼儿/小学教育>
  • 高等教育>
  • 经济/贸易/财会>
  • 建筑/环境>
  • 金融/证券>
  • 医学/心理学>
  • ImageVerifierCode 换一换
    首页 三一文库 > 资源分类 > PPT文档下载
     

    第11章 Turbo C图形.ppt

    • 资源ID:2250805       资源大小:581.51KB        全文页数:30页
    • 资源格式: PPT        下载积分:6
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录   微博登录  
    二维码
    微信扫一扫登录
    下载资源需要6
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    第11章 Turbo C图形.ppt

    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坐标,即最大纵向坐标。 说明:此函数独立于图形视口设置,仅取决于显示卡的显示模式相应的分辨率。 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 画直线、圆、椭圆与多边形函数 (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, int y, int sa, int ea, int r ); 功能:以(x, y)为圆心,r为半径,从sa开始到ea结束(用度表示),画一段圆弧线。在Turbo C中规定x轴正向为0度,逆时针方向旋转一周,依次为90、180、270和360度,即逆时针旋转方向为正。 void ellipse( int x, int y, int stangle, int endangle, int xradius,int yradius ); 功能:以(x, y)为中心,xradius、yradius为x轴和y轴半径,从角stangle 开始到endangle结束画一段椭圆弧。当stangle=0、endangle=360时,画出一个完整的椭圆。,(3)画矩形和多边形 void rectangle( int x1, int y1, int x2, int y2 ); 功能:以(x1, y1)为左上角点,(x2, y2)为右下角点画一个矩形。 void drawpoly( int pnumber, int *polypoints ); 功能:画一个顶点数为pnumber,各顶点坐标由polypoints给出的多边形。参数polypoints指向一整型数组,该数组中是多边形所有顶点(x,y)坐标值,即一系列整数对,且x坐标值在前。 值得注意的是,当画一个封闭的多边形时,画一个n个顶点的闭合图形,顶点数必须等于n+1,并且最后一点(第n+1)点坐标必须等于第一点的坐标。 【例11.5】下面举一个用drawpoly( )函数画闭合三角形的例子。,11.4 线条样式设定 在前面的例题中,我们绘制图形所使用的线条样式都是Turbo C的默认值,即一像素点宽的实线。此外,在使用Turbo C做图时还可以使用Turbo C提供的改变线型函数来改变线条样式,即可以设置线型。 线型包括两个参数,即宽度和形状。其中宽度只有两种选择:一像素点宽和三像素点宽;而线条形状则有五种不同选项。 C语言中用于设置线型的函数是setlinestyle,其定义如下: void setlinestyle( int linestyle, unsigned pattern, int thickness ); 其中,参数linestyle用来设定线条形状,其取值和意义如表11.2所示。,参数thickness用来设定线的宽度,其取值和意义如表11.3所示。 【例11.6】线条样式的设定。,11.5 图形填充 11.5.1 封闭区间填充函数 Turbo C提供了一个可对任意封闭图形填充的函数,其函数原型如下: void floodfill( int x, int y, int border ); 其中:x、y为封闭图形内的任意一点,border为边界颜色,也就是封闭图形轮廓的颜色。调用了该函数后,将用规定的颜色和图模填满整个封闭图形。 使用该函数时请注意以下4点: (1)如果x或y取在边界上,则不进行填充。 (2)如果不是封闭图形则填充会从没有封闭的地方溢出去,填满其他地方。 (3)如果x或y在图形外面,则填充封闭图形外的屏幕区域。 (4)由border指定的颜色值必须与图形轮廓的颜色值相同,但填充色可选任意颜色。,11.5.2 设定填充方式 在对一个闭合图形区域进行填充时往往我们还关心用什么样的线条,什么样的颜色对指定区域进行填充,这时就需要设定填充方式了。此时要用到的函数原型如下: void setfillstyle( int pattern, int color ); 其中,color值是当前屏幕图形模式时颜色的有效值,pattern值以及与其等价的符号常数如表11.4所示。 【例11.7】熟悉图形填充和填充方式的选择。,11.6 图形模式下的文本输出 void outtext( char *textstring ); 该函数用于把字符串指针textstring所指的文本输出到当前位置。 void far outtextxy( int x, int y, char far *textstring ); 该函数用于把字符串指针textstring所指的文本在规定的(x, y)位置进行输出。 以上两个函数都是对纯字符串数据进行输出,但我们编制程序时经常会遇到要求输出数值或其他类型数据的情况,此时可以先使用格式化输出函数sprintf( )。其函数原型为: int sprintf( char *str, char *format, variable-list ); 它的作用基本和printf一样,只是sprintf将格式化后的内容写入str指向的字符数组中,并返回写入到str中的实际字符个数。,11.7 图形示例 前面,我们已经把Turbo C语言中一些常用的作图函数和作图相关知识介绍完了,下面就一起来看一些图形的例题。 注意:11.15、11.16、11.17三个例题是关于动画的,其中用到一些我们前面没有介绍的函数,仅供参考。如果有兴趣,同学们可以参看有关书籍资料。 【例11.8】本例运行结果是一个走动的钟表。程序较长请耐心阅读。,【例11.9】绘制如图11.1所示的“金刚石”图案。,【例11.10】用图形模拟沙丘图纹,如图11.2所示。,【例11.11】用递归方法画“卫星”圆,如图11.3所示。,【例11.12】用递归方法画“卫星”正方形。如图11.4所示。,【例11.13】画龙型线。如图11.5所示。其基本特征是整个图形的某个局部和整体是一个相似体。,【例11.14】用以上方法,画正六边形,连续旋转一个角度并依次缩小,构成一个“相机快门”图案,如图11.6所示。,【例11.15】用一个图象子图快速地在屏幕不同位置出现,形成动画。 【例11.16】利用显示内存分页,动态交替显示两页内容,形成动画。 【例11.17】利用调色板快速改变颜色,形成动画效果。,本章小结 本章介绍了使用Turbo C进行绘图的基本方法,由于计算机绘图涉及的内容很多,限于篇幅,本章只是抛砖引玉,希望能引导读者的学习兴趣。 学习了使用Turbo C进行绘图的初始化方法; 介绍了基本绘图函数的功能与用法; 其他图形特性如:设置颜色、线条样式、文本输出、图形填充等函数的功能与用法; 最后以示例的形式,介绍了常用的绘图技术,生成了一些有趣的图形,给出了完整的程序,供读者参考。,复习题 1、编写一个连续画圆的程序。 2、编写一个用点线画矩形的程序。 3、绘制两个圆心为(100,100),半径分别为20和50的同心圆。要求外圆为红色,内圆为蓝色。 4、编写一个画六边形并填充的程序。 5、编写一个画Cos函数曲线的程序。,

    注意事项

    本文(第11章 Turbo C图形.ppt)为本站会员(本田雅阁)主动上传,三一文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    经营许可证编号:宁ICP备18001539号-1

    三一文库
    收起
    展开