好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

第二章 C语言图形程序设计基础.ppt

99页
  • 卖家[上传人]:cn****1
  • 文档编号:602509446
  • 上传时间:2025-05-17
  • 文档格式:PPT
  • 文档大小:667KB
  • / 99 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,西安工程大学数学系,*,计算机图形学是一门实践性很强的课程通过程序设计来完成图形的绘制,对深刻理解课程的内容和相关概念非常重要程序设计语言是进行计算机绘图的基础,现在大多数高级语言都具有基本绘图功能本章主要介绍,用,C,语言进行图形程序设计的基本方法,和,C,语言的图形功能,,使大家对,C,语言的图形应用有一个较深刻的理解WIN,TC,第三章,C,语言图形程序设计基础,2024/10/3,1,西安工程大学数学系,3.1,、屏幕设置,我们在屏幕上进行绘制图形,一般要按以下几个步骤执行:,(,1,)把屏幕设置为图形模式;,(,2,)选择背景与显示实体的颜色;,(,3,)计算图形显示坐标;,(,4,)调用绘图语句绘制实体,3.1.1,、屏幕显示模式与坐标系,1.,文本模式与字符坐标系,在屏幕上只能显示字符的方式称为文本模式,在文本模式下,屏幕上可以显示的最小单位是字符为了能在指定的位置显示每个字符,,C,语言提供了,字符坐标系,C,语言图形程序设计基础,2024/10/3,2,西安工程大学数学系,字符坐标系,是以屏幕的左上角为坐标原点,水平方向为,X,轴,垂直方向为,Y,轴,如下图,-1,所示:,图,-1,字符坐标系,Max,x,Max,y,(1,1),注:字符坐标系的原点为(,1,,,1,),水平方向(,X,轴)分为若干列,垂直方向,(,Y,轴)分为若干行,用一对坐标可以指定屏幕上一个位置。

      8,20,),表示字符位于屏幕的第,8,行第,20,列,C,语言图形程序设计基础,2024/10/3,3,西安工程大学数学系,(,1,),BW40,:黑白,40,列方式显示,25,行文本,其中每行,40,个字符,以黑白两色显示2,),C40,:彩色,40,列方式可显示,40,列,25,行彩色字符3,),BW80,:黑白,80,列方式可显示,80,列,25,行字符4,),C80,:彩色,80,列,25,行显示方式5,),MONO,:单色,80,列,25,行显示方式6,),C4350,:一种特殊的彩色文本方式,适和,EGA,和,VGA,两种适配器若用,EGA,适配器,显示,80,列,43,行;若用,VGA,适配器,则显示,80,列,50,行,C,语言图形程序设计基础,由于,显示模式,的不同,所显示的字符的列数和行数以及颜色也不相同C,支持以下,6,种不同的显示方式2024/10/3,4,西安工程大学数学系,在不同的显示模式下,屏幕所显示的字符数量也不一样X,方向一般为,40,列或,80,列,,Y,方向一般为,25,行,但,EGA,和,VGA,适配器可达,43,行或,50,行在文本模式下,屏幕最多可显示,80X50=4000,个字符,至少可显示,40X25=1000,个字符。

      显示字符越多,每个字符尺寸越小,反之越大显示模式不同,屏幕坐标的构成也不相同比如:,(,1,)在,BW40,方式下,最大坐标位置为(,25,,,40,);,(,2,)在,C4350,方式下,最大坐标位置为(,50,,,80,);,注:,C,语言图形程序设计基础,2024/10/3,5,西安工程大学数学系,2.,图形模式与点坐标系,在屏幕上显示图形的方式称为图形模式,在图形模式下,屏幕是由像素点组成的,像素点的多少决定了屏幕的分辨率分辨率越高,显示图形越细致,质量越好如右图所示,1.,屏幕由许多像素点组成;,2.,图形的显示效果取决于分辨率的高低;,C,语言图形程序设计基础,2024/10/3,6,西安工程大学数学系,例如:,CGA,显示器的分辨率为,300X200,,,TVG,显,示器的分辨率为,1024X768,,,TVGA,比,CGA,分率高图,-2,点坐标系,Max,x,Max,y,(0,0),注:点坐标系坐标值的范围取决于所用的,适配器,/,显示分辨率,C,语言图形程序设计基础,在图形模式下,屏幕上每个像素的显示位置用点 坐标来描述的点坐标系,是以屏幕左上角为坐标原点(,0,,,0,),水平方向为,X,轴,自左向右;垂直方向为,Y,轴,自上向下,。

      如下图所示:,2024/10/3,7,西安工程大学数学系,由于屏幕的分辨率不同,水平方向和垂直方向的点数也不一样,从而,点坐标系的,Max x,、,Max y,数值,也不同在,C,程序中,坐标数据可以用两种形式给出:,一种是绝对坐标,另一种是相对坐标1,),绝对坐标,的参考点是坐标的原点(,0,,,0,),,x,和,y,只能取规定范围(,0,,,Max x,)和(,0,,,Max y,)内的正整数;,(,2,),相对坐标,是相对“当前点”的坐标,其坐标的参考点是当前点在相对坐标中,,x,和,y,的取值是相对当前点在,x,方向和,y,方向上的增量,故,x,和,y,可以为正整数,也可以为负整数C,语言图形程序设计基础,2024/10/3,8,西安工程大学数学系,3.1.2,、图形驱动程序与图形模式,1.,图形驱动程序,对于不同的图形显示器,其控制方式各有差异,,因此要显示图形就需要先装入相应的图形驱动程序,C,支持以下几种图形驱动程序:,符号常量,数值,符号常量,数值,DETECT,0,IBM8514,6,CGA,1,HERCMONO,7,MCGA,2,ATT400,8,EGA,3,VGA,9,EGA64,4,PC3270,10,EGAMONO,5,C,语言图形程序设计基础,2024/10/3,9,西安工程大学数学系,2.,图形模式,由于每种图形显示器都有几种不同的图形显示模式,所以要显示图形,不但要先,装入相应的驱动程序,,而且还要,决定所用的显示模式,。

      C,语言程序常采用的几种图形驱动程序及相应的模式,驱动程序,(driver),图形(,gmode,),等价值,分辨(,dpi,),CGAC0,0,320X200,CGA,CGAC1,1,320X200,CGAC2,2,320X200,CGAC3,3,320X200,CGAHI,4,640X200,表,2.2,图形驱动程序及相应的模式,C,语言图形程序设计基础,2024/10/3,10,西安工程大学数学系,驱动程序,(driver),图形(,gmode,),等价值,分辨(,dpi,),EGA,EGAHI,0,640X200,EGALO,1,640X350,VGALO,0,640X200,VGA,VGAMED,1,640X350,VGAHI,2,640X480,注,:1.,不同的图形驱动程序有不同的图形模式,;,2.,同一图形驱动程序,也可能会有几种图形模式,;,C,语言图形程序设计基础,2024/10/3,11,西安工程大学数学系,C,提供了十分丰富的图形库函数,共有,70,多个,所有图形函数的原型均在头文件“,graphics.h”,中定义所以,在任何使用图形函数的程序中,都要求其头部包含文件,graphics.h,,即在程序文件的开头写上文件包含命令:,#include,同时将集成开发环境,option/Linker,中的,graphics.lib,选项设置为,”on”,。

      下面我们介绍:,图形系统的初始化,、,图形系统的关闭,、,图形模式控制3.1.3,、图形系统初始化和模式控制,C,语言图形程序设计基础,2024/10/3,12,西安工程大学数学系,图形系统初始化首先要调用,initgraph,(),函数,它通过从磁盘上装入一个图形驱动程序来初始化图形系统,并将系统设置为,图,形模式,1.,图形系统的初始化,图形模式是有别于文本模式的一种计算机屏幕显示模式屏幕一般在默认情况下为,80,列,25,行的文本模式,在文本模式下,所有的图形函数均不能操作,,因此在使用图形函数绘图之前,必须将屏幕显示适配器设置为一种图形模式,即为,图形初始化过程C,语言图形程序设计基础,2024/10/3,13,西安工程大学数学系,功能,将图形驱动软件装入内存,使屏幕显示适配器设置为图形模式,即图形系统初始化;,说明,1.,gdriver,是一个整型值,用来指定要装入的图形驱动程序,;,该值在头文件,graphics.h,中定义;,2.,gmode,是一个整型值,用来设置图形显示模式图形显示模式决定了显示的分辨率和显示的颜色的多少等;,3.,path,是一个字符串,用来指明图形驱动程序所在的路径,.,1.,若驱动程序就在用户当前目录下,则,path,可为空字符串,否则应给出具体路径名,。

      一般情况下,TurboC,安装在,C,盘的,TC,目录中,则该路径为:,C:TC,若写在参数中则为“,C:TC,”,;,2.,前两个参数实际上是整型指针,调用时应加上地址运算符“,注:,initgraph,(),函数,格式,void far,initgraph(int,*,gdriver,int,*,gmode,char,*path);,C,语言图形程序设计基础,2024/10/3,14,西安工程大学数学系,(,1,)已知显示器类型的图形系统初始化,如果已经知道所用图形显示器的种类和要使用的图形模式,则图形系统的初始化可用下面程序,例如:,例,1,画一实心矩形,#includegraphics.h,main(),int,gdriver,gmode,;,gdriver,=CGA;/*,设置显示模式,CGA*/,gmode,=CGAC0;/*,选用,CGA,图形模式*,/,initgraph(&gdriver,&gmode,“D,:TC);,/*,初始化图形系统*,/,C,语言图形程序设计基础,2024/10/3,15,西安工程大学数学系,bar3d(10,20,50,80,0,0);/*,画一条形图*,/,getch,();/*,等待按一键结束*,/,closegraph,();/*,关闭图形系统,回到文本模式*,/,程序注释,:,bar3d(),函数,格式,:void bar3d(,int x1,int y1,int x2,int y2,int,depth,int,topflag,);,功能,:,画一填充的,三维条形图,;,说明,:depth,为条形的深度,;,topflag,=0,则不加顶,否,则在条形图上加一个顶。

      C,语言图形程序设计基础,2024/10/3,16,西安工程大学数学系,格式,void far,detectgraph(,int,*,gdriver,int,*,gmode,);,功能,在计算机有图形适配器的情况下,确定图形适配器的类型;,说明,1.,若系统有图形适配器,则把,gdriver,指的变量设置为适合于适配器的,图形驱动程序的代码,,并把,gmode,所指的变量设置为适配器所能支持的,最高分辨率,2.,若系统无图形适配器,则,gdriver,所指的变量为,-2.,(,2,)不知显示器类型的图形系统初始化若在编写程序过程中,不知道当前系统屏幕硬件的,类型或编写的程序要用于不同的图形显示器,这就要,求所编程序能知当前图形显示器的代码,,Turbo C,供,了一个对图形显示器硬件测试的函数,detectgraph,(),detectgraph,(),函数,C,语言图形程序设计基础,2024/10/3,17,西安工程大学数学系,例,2,、测试硬件显示模式和绘制图形,#include graphics.h,main(),int,gdriver,gmode,;,detectgraph(&gdriver,&gmode,);,/*,测试结果存放于,gdriver,gmode,中*,/,if(gdriver,0),printf(there,is not graphics displayern);,exit(1);,/*,无图形显示模式时,显示信息,停止程序*,/,printf(detect,graphics driver is#%。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.