C语言图形程序设计基础.pptx
《C语言图形程序设计基础.pptx》由会员分享,可在线阅读,更多相关《C语言图形程序设计基础.pptx(96页珍藏版)》请在咨信网上搜索。
1、2024/4/10 周三西安工程大学数学系1 3.1、屏幕设置、屏幕设置v我们在屏幕上进行绘制图形,一般要按以下几个步骤我们在屏幕上进行绘制图形,一般要按以下几个步骤执行:执行:(1)把屏幕设置为图形模式;)把屏幕设置为图形模式;(2)选择背景与显示实体的颜色;)选择背景与显示实体的颜色;(3)计算图形显示坐标;)计算图形显示坐标;(4)调用绘图语句绘制实体)调用绘图语句绘制实体3.1.1、屏幕显示模式与坐标系、屏幕显示模式与坐标系1.1.文本模式与字符坐标系文本模式与字符坐标系文本模式与字符坐标系文本模式与字符坐标系 在屏幕上只能显示字符的方式称为文本模式在屏幕上只能显示字符的方式称为文本模
2、式。在文本模。在文本模式下,屏幕上可以显示的最小单位是字符。为了能在指定式下,屏幕上可以显示的最小单位是字符。为了能在指定的位置显示每个字符,的位置显示每个字符,C语言提供了语言提供了字符坐标系字符坐标系。C语言图形程序设计基础语言图形程序设计基础2024/4/10 周三西安工程大学数学系2v字符坐标系字符坐标系是以屏幕的左上角为坐标原点,水平方向为是以屏幕的左上角为坐标原点,水平方向为 X轴,垂直方向为轴,垂直方向为Y轴,如下图轴,如下图-1所示:所示:图图-1 字符坐标系字符坐标系Max xMax y(1,1)注:字符坐标系的原点为(注:字符坐标系的原点为(1,1),水平方向(),水平方向
3、(X轴)分为若干列,垂直方向轴)分为若干列,垂直方向(Y轴)分为若干行,用一对坐标可以指定屏幕上一个位置。轴)分为若干行,用一对坐标可以指定屏幕上一个位置。(8,20)表示字符表示字符位于屏幕位于屏幕的第的第8行行第第20列列C语言图形程序设计基础语言图形程序设计基础2024/4/10 周三西安工程大学数学系3 (1)BW40:黑白:黑白40列方式。显示列方式。显示25行文本,其中每行行文本,其中每行40个个字符,以黑白两色显示。字符,以黑白两色显示。(2)C40:彩色:彩色40列方式。可显示列方式。可显示40列列25行彩色字符。行彩色字符。(3)BW80:黑白:黑白80列方式。可显示列方式。
4、可显示80列列25行字符。行字符。(4)C80:彩色:彩色80列列25行显示方式。行显示方式。(5)MONO:单色:单色80列列25行显示方式。行显示方式。(6)C4350:一种特殊的彩色文本方式,适和:一种特殊的彩色文本方式,适和EGA和和VGA两两种适配器。种适配器。若用若用EGA适配器,显示适配器,显示80列列43行;若用行;若用VGA适配适配器,则显示器,则显示80列列50行行。C语言图形程序设计基础语言图形程序设计基础由于由于显示模式显示模式的不同的不同,所显示的字符的列数和行数以及颜色也不所显示的字符的列数和行数以及颜色也不相同。相同。C支持以下支持以下6种不同的显示方式。种不同的
5、显示方式。2024/4/10 周三西安工程大学数学系4在不同的显示模式下,屏幕所显示的字符数量也不一样。在不同的显示模式下,屏幕所显示的字符数量也不一样。X方向一般为方向一般为40列或列或80列,列,Y方向一般为方向一般为25行,但行,但EGA和和VGA适配器可达适配器可达43行或行或50行。行。在文本模式下,屏幕最多可显示在文本模式下,屏幕最多可显示80X50=4000个字符,至个字符,至少可显示少可显示40X25=1000个字符。显示字符越多,每个字符个字符。显示字符越多,每个字符尺寸越小,反之越大尺寸越小,反之越大。显示模式不同,屏幕坐标的构成也不相同。比如:显示模式不同,屏幕坐标的构成
6、也不相同。比如:(1)在)在BW40方式下,最大坐标位置为(方式下,最大坐标位置为(25,40););(2)在)在C4350方式下,最大坐标位置为(方式下,最大坐标位置为(50,80););注:注:C语言图形程序设计基础语言图形程序设计基础2024/4/10 周三西安工程大学数学系52.2.图形模式与点坐标系图形模式与点坐标系图形模式与点坐标系图形模式与点坐标系 在屏幕上显示图形的方式称为图形模式在屏幕上显示图形的方式称为图形模式。在图形。在图形模式下模式下,屏幕是由像素点组成的屏幕是由像素点组成的,像素点的多少决定像素点的多少决定了屏幕的分辨率。分辨率越高了屏幕的分辨率。分辨率越高,显示图形
7、越细致显示图形越细致,质质量越好。量越好。v如右图所示1.屏幕由许多像素点屏幕由许多像素点组成;组成;2.图形的显示效果取图形的显示效果取决于分辨率的高低;决于分辨率的高低;C语言图形程序设计基础语言图形程序设计基础2024/4/10 周三西安工程大学数学系6v例如:例如:CGA显示器的分辨率为显示器的分辨率为300X200,TVG显显示器的分辨率为示器的分辨率为1024X768,TVGA比比CGA分率高。分率高。图图-2 点坐标系点坐标系Max xMax y(0,0)注:点坐标系坐标值的注:点坐标系坐标值的范围取决于所用的范围取决于所用的适配适配器器/显示分辨率显示分辨率C语言图形程序设计基
8、础语言图形程序设计基础v 在图形模式下,屏幕上每个像素的显示位置用点在图形模式下,屏幕上每个像素的显示位置用点 坐标来描述的。点坐标系坐标来描述的。点坐标系是以屏幕左上角为坐标原点是以屏幕左上角为坐标原点(0,0),水平方向为),水平方向为X轴,自左向右;垂直方向为轴,自左向右;垂直方向为Y轴,自上向下轴,自上向下。如下图所示:。如下图所示:2024/4/10 周三西安工程大学数学系7v由于屏幕的分辨率不同,水平方向和垂直方向的点数也不由于屏幕的分辨率不同,水平方向和垂直方向的点数也不一样,从而一样,从而点坐标系的点坐标系的Max x、Max y 数值数值也不也不同。同。v在在TurboC中,
9、坐标数据可以用两种形式给出:中,坐标数据可以用两种形式给出:一种是绝一种是绝对坐标,另一种是相对坐标。对坐标,另一种是相对坐标。(1)绝对坐标绝对坐标的参考点是坐标的原点(的参考点是坐标的原点(0,0),),x和和y只只能取规定范围(能取规定范围(0,Max x)和()和(0,Max y)内的正整)内的正整数;数;(2)相对坐标相对坐标是相对是相对“当前点当前点”的坐标,其坐标的参考的坐标,其坐标的参考点是当前点。在相对坐标中,点是当前点。在相对坐标中,x和和y的取值是相对当前点的取值是相对当前点在在x方向和方向和y方向上的增量,故方向上的增量,故x和和y可以为正整数,也可可以为正整数,也可以
10、为负整数。以为负整数。C语言图形程序设计基础语言图形程序设计基础2024/4/10 周三西安工程大学数学系83.1.2、图形驱动程序与图形模式、图形驱动程序与图形模式1.1.图形驱动程序图形驱动程序图形驱动程序图形驱动程序 对于不同的图形显示器,其控制方式各有差异,对于不同的图形显示器,其控制方式各有差异,因此要因此要显示图形就需要先装入相应的图形驱动程序显示图形就需要先装入相应的图形驱动程序。TurboC 支支持以下几种图形驱动程序:持以下几种图形驱动程序:符号常量符号常量 数值数值 符号常量符号常量 数值数值DETECT0IBM85146CGA1HERCMONO7MCGA2ATT4008E
11、GA3VGA9EGA644PC327010EGAMONO5C语言图形程序设计基础语言图形程序设计基础2024/4/10 周三西安工程大学数学系92.2.图形模式图形模式图形模式图形模式 由于每种图形显示器都有几种不同的图形显示模式,所由于每种图形显示器都有几种不同的图形显示模式,所以要显示图形,不但要先以要显示图形,不但要先装入相应的驱动程序装入相应的驱动程序,而且还要,而且还要决定所用的显示模式决定所用的显示模式。TurboC 常采用的几种图形驱动程常采用的几种图形驱动程序及相应的模式序及相应的模式驱动程序驱动程序(driver)图形(图形(gmode)等价值等价值分辨(分辨(dpi)CGA
12、C00320X200 CGACGACGAC11320X200CGAC22320X200CGAC33320X200CGAHI4640X200表表2.2 图形驱动程序及相应的模式图形驱动程序及相应的模式C语言图形程序设计基础语言图形程序设计基础2024/4/10 周三西安工程大学数学系10驱动程序驱动程序(driver)图形图形(gmode)等价值等价值分辨(分辨(dpi)EGAEGAHI0640X200EGALO1640X350VGALO0640X200VGAVGAMED1640X350VGAHI2640X480v注注:1.不同的图形驱动程序有不同的图形模式不同的图形驱动程序有不同的图形模式;2
13、.同一图形驱动程序同一图形驱动程序,也可能会有几种图形也可能会有几种图形模式模式;C语言图形程序设计基础语言图形程序设计基础2024/4/10 周三西安工程大学数学系11vTurboC提供了十分丰富的图形库函数,共有提供了十分丰富的图形库函数,共有70多个,多个,所有图形函数的原型均在头文件所有图形函数的原型均在头文件“graphics.h”中定中定义。所以,在任何使用图形函数的程序中,都要求其义。所以,在任何使用图形函数的程序中,都要求其头部包含文件头部包含文件graphics.h,即在程序文件的开头写上,即在程序文件的开头写上文件包含命令:文件包含命令:#include 同时将集成开发环境
14、同时将集成开发环境option/Linker中的中的graphics.lib选项设置为选项设置为”on”。下面我们介绍:下面我们介绍:图形系统的初始化图形系统的初始化、图形系统的关闭图形系统的关闭、图形模式控制。图形模式控制。3.1.3、图形系统初始化和模式控制、图形系统初始化和模式控制C语言图形程序设计基础语言图形程序设计基础2024/4/10 周三西安工程大学数学系12v图图形形系系统统初初始始化化首首先先要要调调用用initgraph()函函数数,它它通通过过从从磁磁盘盘上上装装入入一一个个图图形形驱驱动动程程序序来来初初始始化化图图形形系系统统,并将系统设置为并将系统设置为图图形模式形
15、模式形模式形模式。1.1.图形系统的初始化图形系统的初始化 图形模式是有别于文本模式的一种计算机屏幕显示模图形模式是有别于文本模式的一种计算机屏幕显示模式。屏幕一般在默认情况下为式。屏幕一般在默认情况下为80列列25行的文本模式,行的文本模式,在文本模式下,所有的图形函数均不能操作,在文本模式下,所有的图形函数均不能操作,因此在使因此在使用图形函数绘图之前,必须将屏幕显示适配器设置为一用图形函数绘图之前,必须将屏幕显示适配器设置为一种图形模式,即为种图形模式,即为图形初始化过程。图形初始化过程。C语言图形程序设计基础语言图形程序设计基础2024/4/10 周三西安工程大学数学系13功能功能 将
16、图形驱动软件装入内存,使屏幕显示适配器设置为图形模式,即图形系统初始化;说明说明 1.gdriver是一个整型值,用来指定要装入的图形驱动程序;该值在头文件graphics.h中定义;中定义;2.gmode是一个整型值,用来设置图形显示模式。图形显示模式决定了显示的分辨率和显示的颜色的多少等;3.path是一个字符串,用来指明图形驱动程序所在的路径.1.若驱动程序就在用户当前目录下,则若驱动程序就在用户当前目录下,则path可为空字符串,否则应可为空字符串,否则应给出具体路径名给出具体路径名。一般情况下一般情况下,TurboC安装在安装在C盘的盘的TC目录中,则该目录中,则该路径为:路径为:C
17、:TC,若写在参数中则为若写在参数中则为“C:TC”;2.前两个参数实际上是整型指针,调用时应加上地址运算符前两个参数实际上是整型指针,调用时应加上地址运算符“&”;注:注:initgraph()函数函数格式格式 void far initgraph(int*gdriver,int*gmode,char*path);C语言图形程序设计基础语言图形程序设计基础2024/4/10 周三西安工程大学数学系14(1)已知显示器类型的图形系统初始化)已知显示器类型的图形系统初始化。如果已经知道所用图形显示器的种类和要使用的图形模式如果已经知道所用图形显示器的种类和要使用的图形模式则图形系统的初始化可用下
18、面程序,例如:则图形系统的初始化可用下面程序,例如:例例1 画一实心矩形画一实心矩形#includegraphics.h main()int gdriver,gmode;v gdriver=CGA;/*设置显示模式设置显示模式CGA*/v gmode=CGAC0;/*选用选用CGA图形模式图形模式*/v initgraph(&gdriver,&gmode,“D:TC);v /*初始化图形系统初始化图形系统*/C语言图形程序设计基础语言图形程序设计基础2024/4/10 周三西安工程大学数学系15v bar3d(10,20,50,80,0,0);/*画一条形图画一条形图*/v getch();/
19、*等待按一键结束等待按一键结束*/v closegraph();/*关闭图形系统,回到文本模式关闭图形系统,回到文本模式*/程序注释程序注释程序注释程序注释:bar3d()函数函数 格式格式:void bar3d(int x1,int y1,int x2,int y2,int x1,int y1,int x2,int y2,int depth,int topflag int depth,int topflag);功能功能:画一填充的画一填充的三维条形图三维条形图;说明说明:depth:depth为条形的深度为条形的深度;topflag=0;topflag=0则不加顶则不加顶,否否 则在条形图上
20、加一个顶。则在条形图上加一个顶。C语言图形程序设计基础语言图形程序设计基础2024/4/10 周三西安工程大学数学系16格式格式 void far detectgraph(int*gdriver,int*gmode);功能功能 在计算机有图形适配器的情况下,确定图形适配器在计算机有图形适配器的情况下,确定图形适配器的类型;的类型;说明说明 1.若系统有图形适配器,则把若系统有图形适配器,则把gdriver指的变量设置指的变量设置为适合于适配器的为适合于适配器的图形驱动程序的代码图形驱动程序的代码,并把,并把gmode所所指的变量设置为适配器所能支持的指的变量设置为适配器所能支持的最高分辨率最高
21、分辨率。2.若系统若系统无图形适配器无图形适配器,则则gdriver所指的变量为所指的变量为-2.(2)不知显示器类型的图形系统初始化。)不知显示器类型的图形系统初始化。若在编写程序过程中,不知道当前系统屏幕硬件的若在编写程序过程中,不知道当前系统屏幕硬件的类型或编写的程序要用于不同的图形显示器,这就要类型或编写的程序要用于不同的图形显示器,这就要求所编程序能知当前图形显示器的代码,求所编程序能知当前图形显示器的代码,Turbo C供供了一个对图形显示器硬件测试的函数了一个对图形显示器硬件测试的函数detectgraph()。detectgraph()函数函数C语言图形程序设计基础语言图形程序
22、设计基础2024/4/10 周三西安工程大学数学系17v例例2、测试硬件显示模式和绘制图形测试硬件显示模式和绘制图形#include graphics.h main()int gdriver,gmode;detectgraph(&gdriver,&gmode);/*测试结果存放于测试结果存放于 gdriver,gmode中中*/if(gdriver0)printf(there is not graphics displayern);exit(1);/*无图形显示模式时,显示信息,停止程序无图形显示模式时,显示信息,停止程序*/printf(detect graphics driver is#%
23、d,mode is#%d n,gdriver,gmode);/*显示硬件测试结果显示硬件测试结果*/getch();/*等待按一键结束等待按一键结束*/C语言图形程序设计基础语言图形程序设计基础2024/4/10 周三西安工程大学数学系18 initgraph(&gdriver,&gmode,c:tc);/*初始化图形系统初始化图形系统*/bar3d(10,20,50,80,10,1);getch();/*等待按一键结束等待按一键结束*/closegraph();/*关闭图形系统,回到文本模式关闭图形系统,回到文本模式*/return(0);C语言图形程序设计基础语言图形程序设计基础2024/
24、4/10 周三西安工程大学数学系19v例例3自动搜索显示类型和模式并初始化画图自动搜索显示类型和模式并初始化画图#includegraphics.h main()(3)自动初始化图形系统。)自动初始化图形系统。一般在程序设计中一般在程序设计中,可以把对图形显示器的检测和可以把对图形显示器的检测和初始化工作放在一起来自动完成初始化工作放在一起来自动完成,规定规定Gdriver=DETECT,则则initgraph()函数会自动按照系统所配置函数会自动按照系统所配置的图形显示器来确定驱动程序的图形显示器来确定驱动程序,并把图形模式设置为并把图形模式设置为检测到的驱动程序的最高分辨率检测到的驱动程序
25、的最高分辨率,实现图形系统的初实现图形系统的初始化始化.C语言图形程序设计基础语言图形程序设计基础2024/4/10 周三西安工程大学数学系20 int gdriver=DETECT,gmode;/*自动搜索显示器类型和显示模式自动搜索显示器类型和显示模式*/initgraph(&gdriver,&gmode,“C:TC);/*初始化图形系统初始化图形系统*/bar3d(10,20,50,80,10,1);/*画一三维立体有顶矩形画一三维立体有顶矩形*/getch();/*等待按一键结束等待按一键结束*/closegraph();/*关闭图形系统,回到文本模式关闭图形系统,回到文本模式*/re
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 图形 程序设计 基础
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【胜****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【胜****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。