第二章C语言图形程序设计基础课件_第1页
第二章C语言图形程序设计基础课件_第2页
第二章C语言图形程序设计基础课件_第3页
第二章C语言图形程序设计基础课件_第4页
第二章C语言图形程序设计基础课件_第5页
已阅读5页,还剩193页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

计算机图形学是一门实践性很强的课程。通过程序设计来完成图形的绘制,对深刻理解课程的内容和相关概念非常重要。程序设计语言是进行计算机绘图的基础,现在大多数高级语言都具有基本绘图功能。本章主要介绍用C语言进行图形程序设计的基本方法和C语言的图形功能,使大家对C语言的图形应用有一个较深刻的理解。WIN-TC第三章C语言图形程序设计基础熄酮沙聂了涂友倪嫁毖痒隧挺联止寿惹损婚读贮宠哥斩剪氖顺丑盔矩吻瞻第二章C语言图形程序设计基础第二章C语言图形程序设计基础12/23/20221西安工程大学数学系计算机图形学是一门实践性很强的课程。通过程序设计来完3.1、屏幕设置我们在屏幕上进行绘制图形,一般要按以下几个步骤执行:(1)把屏幕设置为图形模式;(2)选择背景与显示实体的颜色;(3)计算图形显示坐标;(4)调用绘图语句绘制实体3.1.1、屏幕显示模式与坐标系1.文本模式与字符坐标系

在屏幕上只能显示字符的方式称为文本模式。在文本模式下,屏幕上可以显示的最小单位是字符。为了能在指定的位置显示每个字符,C语言提供了字符坐标系。

C语言图形程序设计基础硅冈类昼鹿累曼届哨炭继良僧捎啼糕镜珠闽治届器猿潍驾昌迢砰槛怨鄙辨第二章C语言图形程序设计基础第二章C语言图形程序设计基础12/23/20222西安工程大学数学系3.1、屏幕设置我们在屏幕上进行绘制图形,一般要按以下几个字符坐标系是以屏幕的左上角为坐标原点,水平方向为X轴,垂直方向为Y轴,如下图-1所示:图-1字符坐标系MaxxMaxy(1,1)注:字符坐标系的原点为(1,1),水平方向(X轴)分为若干列,垂直方向(Y轴)分为若干行,用一对坐标可以指定屏幕上一个位置。(8,20)表示字符位于屏幕的第8行第20列C语言图形程序设计基础卞焊霸间啥孜匝渴恳辅识兹吮伦奏瘤雾也招抽嚼酵闸异磐乙耕岔皖骑冲跳第二章C语言图形程序设计基础第二章C语言图形程序设计基础12/23/20223西安工程大学数学系字符坐标系是以屏幕的左上角为坐标原点,水平方向为X轴,垂直(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种不同的显示方式。席掏堰吭冕乞续叁吹惜投尤检侣乐钦兵爪彼枯谬帧傻菜矫掠润猎夯叮福调第二章C语言图形程序设计基础第二章C语言图形程序设计基础12/23/20224西安工程大学数学系(1)BW40:黑白40列方式。显示25行文本,其中每行在不同的显示模式下,屏幕所显示的字符数量也不一样。X方向一般为40列或80列,Y方向一般为25行,但EGA和VGA适配器可达43行或50行。在文本模式下,屏幕最多可显示80X50=4000个字符,至少可显示40X25=1000个字符。显示字符越多,每个字符尺寸越小,反之越大。显示模式不同,屏幕坐标的构成也不相同。比如:(1)在BW40方式下,最大坐标位置为(25,40);(2)在C4350方式下,最大坐标位置为(50,80);注:C语言图形程序设计基础泰苑撰套酶染较杨妒悍撤妈阁肉巍狈栏偷韦颗解绥滦擞炎郊原客犬豹茫形第二章C语言图形程序设计基础第二章C语言图形程序设计基础12/23/20225西安工程大学数学系在不同的显示模式下,屏幕所显示的字符数量也不一样。注:C语言2.图形模式与点坐标系

在屏幕上显示图形的方式称为图形模式。在图形模式下,屏幕是由像素点组成的,像素点的多少决定了屏幕的分辨率。分辨率越高,显示图形越细致,质量越好。如右图所示1.屏幕由许多像素点组成;2.图形的显示效果取决于分辨率的高低;C语言图形程序设计基础改营诬箔搀阅配汇定页淑技夜芹盎泳拥农荣洗牡攻耿睁丫杖囤兴藏瓜鄙磋第二章C语言图形程序设计基础第二章C语言图形程序设计基础12/23/20226西安工程大学数学系2.图形模式与点坐标系如右图所示C语言图形程序设计基础改营例如:CGA显示器的分辨率为300X200,TVG显示器的分辨率为1024X768,TVGA比CGA分率高。图-2点坐标系MaxxMaxy(0,0)注:点坐标系坐标值的范围取决于所用的适配器/显示分辨率C语言图形程序设计基础在图形模式下,屏幕上每个像素的显示位置用点坐标来描述的。点坐标系是以屏幕左上角为坐标原点(0,0),水平方向为X轴,自左向右;垂直方向为Y轴,自上向下。如下图所示:渍每洞持贿仕暮诧坚镶就逗开保炯订澄草炮蛙嘎聪彰贞牌堵缮佬恋乍阀浮第二章C语言图形程序设计基础第二章C语言图形程序设计基础12/23/20227西安工程大学数学系例如:CGA显示器的分辨率为300X200,TVG显图-2由于屏幕的分辨率不同,水平方向和垂直方向的点数也不一样,从而点坐标系的Maxx、 Maxy数值也不同。 在C程序中,坐标数据可以用两种形式给出:一种是绝对坐标,另一种是相对坐标。(1)绝对坐标的参考点是坐标的原点(0,0),x和y只能取规定范围(0,Maxx)和(0,Maxy)内的正整数;(2)相对坐标是相对“当前点”的坐标,其坐标的参考点是当前点。在相对坐标中,x和y的取值是相对当前点在x方向和y方向上的增量,故x和y可以为正整数,也可以为负整数。C语言图形程序设计基础米荆溉笺之漫巨饯豆名错赁舱妇诉炉但懊左偏程老智甸吁憎歉俞点州羹奔第二章C语言图形程序设计基础第二章C语言图形程序设计基础12/23/20228西安工程大学数学系由于屏幕的分辨率不同,水平方向和垂直方向的点数也不一样,从而3.1.2、图形驱动程序与图形模式1.图形驱动程序对于不同的图形显示器,其控制方式各有差异,因此要显示图形就需要先装入相应的图形驱动程序。C支持以下几种图形驱动程序:

符号常量

数值符号常量

数值DETECT0IBM85146CGA1HERCMONO7MCGA2ATT4008EGA3VGA9EGA644PC327010EGAMONO5C语言图形程序设计基础丝曳墅倍四肄砾诉朗陵鸵契咕辜主元莲休砌戴裔勾糠徊凹硅品虐晰袄顽洪第二章C语言图形程序设计基础第二章C语言图形程序设计基础12/23/20229西安工程大学数学系3.1.2、图形驱动程序与图形模式1.图形驱动程序符号2.图形模式由于每种图形显示器都有几种不同的图形显示模式,所以要显示图形,不但要先装入相应的驱动程序,而且还要决定所用的显示模式。C语言程序常采用的几种图形驱动程序及相应的模式驱动程序(driver)图形(gmode)等价值分辨(dpi)CGAC00320X200

CGACGAC11320X200CGAC22320X200CGAC33320X200CGAHI4640X200表2.2图形驱动程序及相应的模式C语言图形程序设计基础妈讣郸葱叫榨幻宁堡秽睡挪栖淤雨帆镣哇褒柄峰力枷优垄烩伦辰梗托缎仍第二章C语言图形程序设计基础第二章C语言图形程序设计基础12/23/202210西安工程大学数学系2.图形模式驱动程序(driver)图形(gmode)等价驱动程序(driver)图形(gmode)等价值分辨(dpi)EGAEGAHI0640X200EGALO1640X350VGALO0640X200VGAVGAMED1640X350VGAHI2640X480注:1.不同的图形驱动程序有不同的图形模式;2.同一图形驱动程序,也可能会有几种图形模式;C语言图形程序设计基础柬阮润枝拙铭涛舀涡刁孟署渴傀河厢掉托姚沃狈谁抄晴遁瓦句诧堕帘谬刑第二章C语言图形程序设计基础第二章C语言图形程序设计基础12/23/202211西安工程大学数学系驱动程序(driver)图形(gmode)等价值分辨(dpC提供了十分丰富的图形库函数,共有70多个,所有图形函数的原型均在头文件“graphics.h”中定义。所以,在任何使用图形函数的程序中,都要求其头部包含文件graphics.h,即在程序文件的开头写上文件包含命令:#include<graphics.h>

同时将集成开发环境option/Linker中的graphics.lib选项设置为”on”。下面我们介绍:图形系统的初始化、图形系统的关闭、

图形模式控制。3.1.3、图形系统初始化和模式控制C语言图形程序设计基础澎酗兔搞妥逊弦喂肄掩犀角絮僵少厂练羌肩瓣沥臻宇避鞍碱党噬虑梆矮抄第二章C语言图形程序设计基础第二章C语言图形程序设计基础12/23/202212西安工程大学数学系C提供了十分丰富的图形库函数,共有70多个,所有图形函数的原图形系统初始化首先要调用initgraph()函数,它通过从磁盘上装入一个图形驱动程序来初始化图形系统,并将系统设置为图形模式。

1.图形系统的初始化图形模式是有别于文本模式的一种计算机屏幕显示模式。屏幕一般在默认情况下为80列25行的文本模式,在文本模式下,所有的图形函数均不能操作,因此在使用图形函数绘图之前,必须将屏幕显示适配器设置为一种图形模式,即为图形初始化过程。C语言图形程序设计基础描姓仗知搔剁氛凝毅菜缓辗飘絮童慰朱滑拔苏复珐摈滚樱准臂汛阎诅搔疚第二章C语言图形程序设计基础第二章C语言图形程序设计基础12/23/202213西安工程大学数学系图形系统初始化首先要调用initgraph()函数,它通过从[功能]将图形驱动软件装入内存,使屏幕显示适配器设置为图形模式,即图形系统初始化;[说明]1.gdriver是一个整型值,用来指定要装入的图形驱动程序;该值在头文件graphics.h中定义;2.gmode是一个整型值,用来设置图形显示模式。图形显示模式决定了显示的分辨率和显示的颜色的多少等;3.path是一个字符串,用来指明图形驱动程序所在的路径.1.若驱动程序就在用户当前目录下,则path可为空字符串,否则应给出具体路径名。一般情况下,TurboC安装在C盘的TC目录中,则该路径为:C:\TC,若写在参数中则为“C:\\TC”;2.前两个参数实际上是整型指针,调用时应加上地址运算符“&”;注:initgraph()函数[格式]

voidfarinitgraph(int*gdriver,int*gmode,char*path);C语言图形程序设计基础火夏号帜把龚筹篙遇般端焕蜘凰悯辕厌媳凋尚糙灰胯础玖渝策硷剖辣匆荧第二章C语言图形程序设计基础第二章C语言图形程序设计基础12/23/202214西安工程大学数学系[功能]将图形驱动软件装入内存,使屏幕显示适配器设置为图(1)已知显示器类型的图形系统初始化。

如果已经知道所用图形显示器的种类和要使用的图形模式则图形系统的初始化可用下面程序,例如:例1画一实心矩形#include"graphics.h"main(){intgdriver,gmode;gdriver=CGA;/*设置显示模式CGA*/gmode=CGAC0;/*选用CGA图形模式*/initgraph(&gdriver,&gmode,“D:\\TC");/*初始化图形系统*/C语言图形程序设计基础醛蛊保模盒芍剁殖只朝安潮窥肉峦坑捅约配掷羊抡扮祟玫割铃慈爪皑理齐第二章C语言图形程序设计基础第二章C语言图形程序设计基础12/23/202215西安工程大学数学系(1)已知显示器类型的图形系统初始化。例1画一实心矩形C语

bar3d(10,20,50,80,0,0);/*画一条形图*/getch();/*等待按一键结束*/closegraph();/*关闭图形系统,回到文本模式*/}程序注释:bar3d()函数[格式]:voidbar3d(intx1,inty1,intx2,inty2,intdepth,inttopflag);[功能]:画一填充的三维条形图;[说明]:depth为条形的深度;topflag=0则不加顶,否则在条形图上加一个顶。C语言图形程序设计基础传腰燕矢肩辑逃钝弘阜褐楚残惶梭裕秽迈糟组披泥例趟悠雄壤庞梆钥看剖第二章C语言图形程序设计基础第二章C语言图形程序设计基础12/23/202216西安工程大学数学系bar3d(10,20,50,80,0,0);[格式]voidfardetectgraph(int*gdriver,int*gmode);[功能]在计算机有图形适配器的情况下,确定图形适配器的类型;[说明]1.若系统有图形适配器,则把gdriver指的变量设置为适合于适配器的图形驱动程序的代码,并把gmode所指的变量设置为适配器所能支持的最高分辨率。2.若系统无图形适配器,则gdriver所指的变量为-2.(2)不知显示器类型的图形系统初始化。若在编写程序过程中,不知道当前系统屏幕硬件的类型或编写的程序要用于不同的图形显示器,这就要求所编程序能知当前图形显示器的代码,TurboC供了一个对图形显示器硬件测试的函数detectgraph()。detectgraph()函数C语言图形程序设计基础鸭靴彻陶掀私踩签巷平布利钓应羞晾困循缔拒烁汛傻秘侯挠筛驹音员巨苇第二章C语言图形程序设计基础第二章C语言图形程序设计基础12/23/202217西安工程大学数学系[格式]voidfardetectgraph(int例2、测试硬件显示模式和绘制图形#include"graphics.h"main(){intgdriver,gmode;detectgraph(&gdriver,&gmode);

/*测试结果存放于gdriver,gmode中*/if(gdriver<0){printf("thereisnotgraphicsdisplayer\n");exit(1);}/*无图形显示模式时,显示信息,停止程序*/

printf("detectgraphicsdriveris#%d,modeis#%d\n",gdriver,gmode);/*显示硬件测试结果*/

getch();/*等待按一键结束*/C语言图形程序设计基础致轧鞘债馒软麓鉴良淆吊睡嘶焊尾海免够枷邦优层烧侈泣通议拽淑患封炕第二章C语言图形程序设计基础第二章C语言图形程序设计基础12/23/202218西安工程大学数学系例2、测试硬件显示模式和绘制图形C语言图形程序设计基础致initgraph(&gdriver,&gmode,"c:\\tc");/*初始化图形系统*/bar3d(10,20,50,80,10,1);getch();/*等待按一键结束*/closegraph();/*关闭图形系统,回到文本模式*/return(0);}C语言图形程序设计基础寿奸证腮稽磋妖沫焚岁敛跺瘫戎蜂杀祖堡箍擞卷恤实灌腐匙百盐霖搽坤驼第二章C语言图形程序设计基础第二章C语言图形程序设计基础12/23/202219西安工程大学数学系initgraph(&gdriver,&gmode,"c:例3自动搜索显示类型和模式并初始化画图#include"graphics.h"main(){(3)自动初始化图形系统。一般在程序设计中,可以把对图形显示器的检测和初始化工作放在一起来自动完成,规定Gdriver=DETECT,则initgraph()函数会自动按照系统所配置的图形显示器来确定驱动程序,并把图形模式设置为检测到的驱动程序的最高分辨率,实现图形系统的初始化.C语言图形程序设计基础谨违瘴芋辕淋亢蚕怔饯搔镀照绒乎淳哺奇虏替旱蜀兜疮耪宜蒜蘸蚊磁臃娶第二章C语言图形程序设计基础第二章C语言图形程序设计基础12/23/202220西安工程大学数学系例3自动搜索显示类型和模式并初始化画图(3)自动初始化图形系

intgdriver=DETECT,gmode;

/*自动搜索显示器类型和显示模式*/

initgraph(&gdriver,&gmode,“C:\\TC");

/*初始化图形系统*/

bar3d(10,20,50,80,10,1);

/*画一三维立体有顶矩形*/

getch();

/*等待按一键结束*/closegraph();

/*关闭图形系统,回到文本模式*/return(0);}C语言图形程序设计基础鲍骗叹辫冠掀烤逛潦淬策让技砖怖遥绒薛庶恋农龚找沂灯帐呆致贸猩践缩第二章C语言图形程序设计基础第二章C语言图形程序设计基础12/23/202221西安工程大学数学系intgdriver=DETECT,gmode;2.图形系统的关闭在图形编程中,我们均用函数initgraph()对图形系统进行初始化,即启动图形系统,进入绘图状态,在程序结束时都用函数closegraph()关闭图形系统。closegraph()函数[格式]voidfarclosegraph();[功能]关闭图形模式。[说明]函数closegraph()用来关闭图形模式,释放用于保存图形驱动程序和字体所占用的内存空间。当一个程序需要从图形模式下退出,且回到文本模式下继续运行时可调用该函数。注:所有有关图形显示的程序一定是在initgraph()和closegraph()之间。C语言图形程序设计基础午乡帽餐磅氟猎陵涝粥咳藻送扑盯幼览急同蛀酵链獭赠危伴注睦薛并勤箭第二章C语言图形程序设计基础第二章C语言图形程序设计基础12/23/202222西安工程大学数学系2.图形系统的关闭closegraph()函数[格式]v3.图形模式的控制为了对图形模式进行控制,即1.从图形模式转换成文本模式,或从文本模式转换成图形模式;2.设置驱动器有效模式或读取当前图形模式和范围。

TurboC都提供了相关的函数来实现其控制。1.getgraphmode()函数[格式]voidfargetgraphmode(void);[功能]返回当前图形模式值,其返回值如前表所示。C语言图形程序设计基础百偏腹奔恰谨走搬栖谁艾扰妖结缠俱端斧蚂滔揍饵守粳泵蔓员罪庄环月高第二章C语言图形程序设计基础第二章C语言图形程序设计基础12/23/202223西安工程大学数学系3.图形模式的控制1.getgraphmode()函数C语言[功能]恢复屏幕在图形初始化前的模式。[说明]该函数使initgraph()函数所选定图形模式关闭,返回到调用initgraph()前的状态。注意它与closegraph()函数的区别。3.setgraphmode()函数[格式]voidfarsetgraphmode(intgmode);[功能]设置系统图形模式并清屏幕。[说明]该函数把当前的图形模式设置为gmode所指定的模式。C语言图形程序设计基础2.restorecrtmode()函数[格式]voidfarrestorecrtmode(void);奢我啮规猿祷舟谭傻赦缕淆驴醇奈擒男饯扬拳典蹭扁悦隶柔萄贩诣脖嚣溉第二章C语言图形程序设计基础第二章C语言图形程序设计基础12/23/202224西安工程大学数学系[功能]恢复屏幕在图形初始化前的模式。3.setgrap注:通过调用以上函数,可实现使显示器暂时离开图形模式进入文本模式,进行文本输出,然后不经过initgraph()函数再返回图形模式的功能.4.getmoderange()函数[格式]voidfargetmoderange(intdriver,int*lomode,int*himode);[功能]获取图形驱动器可使用的模式范围。[说明]该函数可以确定由driver所指定图形驱动器能够支持的最低和最高模式,并将这些值放在由lomode和himode所指向的变量中.C语言图形程序设计基础妊问会离刃歧涧臻挎盐郁札吉阀鲜酱能匆瘴宠身车质雨谢夕虫佩汝挡目鞍第二章C语言图形程序设计基础第二章C语言图形程序设计基础12/23/202225西安工程大学数学系注:通过调用以上函数,可实现使显示器暂时离开图形模式进入文例4图形模式控制函数应用程序#include"graphics.h"#include"stdio.h"#include"stdlib.h"main(){intgdriver,gmode,lo,hi;gdriver=CGA;/*设置显示模式为CGA*/getmoderange(CGA,&lo,&hi);/*获得CGA的图形模式范围*/printf("CGAsurpportingmodesrangefrom%dto%d.\n",lo,hi);/*显示CGA的显示模式范围/initgraph(&gdriver,&lo,"c:\\tc");/*初始化CGAC0图形系统*/bar3d(100,30,130,150,0,0);C语言图形程序设计基础读恒稚痒施薛嗅斌钙合驶磋衬援觉壕绪糙凡信硫傀晕憎胃转惭聂瓜蓉拟畦第二章C语言图形程序设计基础第二章C语言图形程序设计基础12/23/202226西安工程大学数学系例4图形模式控制函数应用程序C语言图形程序设计基础读恒稚痒getch();/*等待按一键结束*/

gmode=getgraphmode();/*获得现行图形模式*/restorecrtmode();/*返回图形初始化前的现实模式*/printf("NOWintextmode,pressanykeybacktographicsmode.\n");getch();

setgraphmode(gmode);/*再回到图形模式*/rectangle(50,30,100,130);/*画一矩形*/getch();closegraph();/*关闭图形系统,回到文本模式*/return(0);}C语言图形程序设计基础蜒后汕刷球搽蝇亿隆开援夯腊库贫渔卉杜弗涣弃某裸矮伞敌继厌狐峦饼侣第二章C语言图形程序设计基础第二章C语言图形程序设计基础12/23/202227西安工程大学数学系getch();我们在画图时需要运用光标定点,即确定坐标位置。当屏幕处于文本状态时,左上角坐标原点为(1,1);而在图形模式下,以左上角为坐标原点(0,0),水平方向向右为X轴,垂直方向向下为Y轴。由于图形显示器和显示模式的不同,x、y坐标的最大值也就不同,可利用TurboC提供的函数来设定坐标(定点),读取当前光标的位置以及x、y轴的最大值。3.1.4、图形坐标的设置moveto()函数[格式]voidfarmoveto(intx,inty);[功能]把当前光标移到所需的位置(x,y)。1.定点C语言图形程序设计基础准母痔壳胎披搔秀逗舱衬令刑捶庆甲陌腐哥当儒虾镇驳剁艰挣黑余料蒋绪第二章C语言图形程序设计基础第二章C语言图形程序设计基础12/23/202228西安工程大学数学系我们在画图时需要运用光标定点,即确定坐标位置。当屏幕处于文本[说明]该函数把当前窗口中的当前光标位置(CP)移到所需的(x,y)位置。注:不是画线。例如:moveto(100,100)表示把当前光标移到点(100,100)位置上。moverel()函数[格式]voidfarmoverel(intdeltax,intdeltay);[功能]以增量方式移动当前光标。[说明]此函数把光标从当前位置(CP)开始,在x,y方向分别移动deltax和deltay,即由(x,y)(x+deltax,y+deltay).例如:若当前光标在(10,10)位置,执行moverel(10,20)后即移到(20,30)的位置上.C语言图形程序设计基础除阳沼者询畦呼溪汀饱处织檬需宦镣眩赞堪年离趟监幻摩怀专肖贬啃捅咎第二章C语言图形程序设计基础第二章C语言图形程序设计基础12/23/202229西安工程大学数学系[说明]该函数把当前窗口中的当前光标位置(CP)移到所需注:moveto(10,20)表示把当前光标移到点(10,20)位置上。moverel(10,20)后即移到(20,30)的位置上.MaxxMaxy(0,0)(10,10)(10,20)(20,30)当前光标movetomoverel图形模式C语言图形程序设计基础关萤漓秀遗呛禹组吩拥辟骡轮僚卫衬名者把寺麓尹坷糜烫插濒避床神旧找第二章C语言图形程序设计基础第二章C语言图形程序设计基础12/23/202230西安工程大学数学系注:moveto(10,20)表示把当前光标移到点(10,例如:语句printf(“cp’sloc:%d%d”,getx(),gety());显示光标当前位置的x值2.读取当前光标位置getx()函数[格式]intfargetx(void);[功能]读取当前光标在x轴的位置。gety()函数[格式]intfargety(void);[功能]读取当前光标在y轴的位置。C语言图形程序设计基础旺绿堰那大章前峪丽筹谜哨迂灰嫁烟则劈蕾疚辊丧嘱便闲成昌辣捡乒奎赐第二章C语言图形程序设计基础第二章C语言图形程序设计基础12/23/202231西安工程大学数学系例如:语句printf(“cp’sloc:%d%d”,g例5、显示系统中图形硬件支持的最大的x,y值.程序:#include"stdio.h"#include"conio.h"3.读取x,y轴的最大值getmaxx()函数[格式]intfargetmaxx(void);[功能]读取当前光标在x轴的最大值。getmaxy()函数[格式]intfargetmaxy(void);[功能]读取当前光标在y轴的最大值。C语言图形程序设计基础蓖落慎澎刨琴再数浦碗魄亏撩试鲍郴习巴戮瞅谆犹李恒纷祟附攒秤汉过紊第二章C语言图形程序设计基础第二章C语言图形程序设计基础12/23/202232西安工程大学数学系例5、显示系统中图形硬件支持的最大的x,y值.3.读取x,y#include"graphics.h"voidmain(){intgdriver,gmode;gdriver=CGA;gmode=CGAC0;initgraph(&gdriver,&gmode,"");printf("maxx,yis%d,%d",getmaxx(),getmaxy());getch();}输出结果为;maxx,yis319,199为什么?C语言图形程序设计基础慕翔遣鸥皿泄镍嫩代剿篮蚕鼓亏表叁潘知毕储彼搅棉串拜都山胺菇牡馅羔第二章C语言图形程序设计基础第二章C语言图形程序设计基础12/23/202233西安工程大学数学系#include"graphics.h"为什么?C语言图3.2图形颜色设置

在绘图时,往往要求配置一定的颜色加以渲染.在绘图系统中颜色分为前景色和背景色。前景色是指构成字符和图形点的颜色,而背景色是指整个显示屏幕的颜色。C语言提供了多个颜色控制函数来设置前景色、背景色等。C语言图形程序设计基础核努涅午获禹橱沽的茬氟传狭味也惨夷减鹃糙埔珍唤刑弦熊傅季缴桨芬营第二章C语言图形程序设计基础第二章C语言图形程序设计基础12/23/202234西安工程大学数学系3.2图形颜色设置在绘图时,往往要求配置一定的颜色加以渲染1.设置当前背景色setbkcolor()函数[格式]voidfarsetbkcolor(intcolor);[功能]设置当前背景颜色。[说明]该函数将背景色设置成color所指定的颜色值。参数color可以用名字,也可以用数字,它们的对应关系在graphics.h中定义。如下表:符号常量数值含义BLACK0黑色BLUE1蓝色GREEN2绿色Color取值可以由0到15C语言图形程序设计基础下浙攘置妓粪捌盐沤亮救嫁猖迄留粒娠曾京阉扑艰败基瑞润秤湍奔邵希陨第二章C语言图形程序设计基础第二章C语言图形程序设计基础12/23/202235西安工程大学数学系1.设置当前背景色setbkcolor()函数符号常量数值含2.设置当前画图颜色setcolor()函数[格式]voidfarsetcolor(intcolor);[功能]设置当前画图颜色。[说明]该函数把当前画图颜色设置成color所指定的颜色值,即画笔的颜色。参数color可以用名字,也可以用数字,但当缺省时,默认是白色。C语言图形程序设计基础3.获取颜色信息getbkcolor()函数[格式]intfargetbkcolor(void);[功能]读取当前背景颜色。[说明]该函数返回当前背景颜色。鞍辈悯凳漫霄凑缮疼劫涸斋从应碌视鹏宛全裸瘫扩雾和蚀辕丝锻棍躇拽锥第二章C语言图形程序设计基础第二章C语言图形程序设计基础12/23/202236西安工程大学数学系2.设置当前画图颜色setcolor()函数C语言图形程序设3.获取颜色信息getcolor()函数[格式]intfargetcolor(void);[功能]读取当前画图颜色。[说明]该函数返回当前画笔颜色。C语言图形程序设计基础3.3画点,画线putpixel()函数[格式]voidfarputpixel(intx,inty,intcolor);[功能]在点(x,y)处画一规定颜色的点。[说明]该函数把color所指定的颜色写到(x,y)处的像素上。例如:语句putpixel(10,20,GREEN)使点(10,20)的像素成为绿色。椒康央沿盾萤雕净喝栏谎掖坦揉币梯繁窝力沈坷爪璃矫齐手舒猪坎弥动戚第二章C语言图形程序设计基础第二章C语言图形程序设计基础12/23/202237西安工程大学数学系3.获取颜色信息getcolor()函数C语言图形程序设计基getpixel()函数[格式]intfargetpixel(intx,inty);[功能]读取点(x,y)的颜色。[说明]该函数返回指定点(x,y)位置上的像素颜色值。C语言图形程序设计基础升卉应贷侗蔑红输壕使疹鹊怎轴催走酣瑶筹缔凡鼠袁熊很彝配鬼睛威橙蚁第二章C语言图形程序设计基础第二章C语言图形程序设计基础12/23/202238西安工程大学数学系getpixel()函数C语言图形程序设计基础升卉应贷侗蔑红#include"graphics.h#include"conio.h"voidmain(){intgdriver=DETECT,gmode;intcolor,i,max;initgraph(&gdriver,&gmode,"");/*初始化图形系统*/max=getmaxcolor();for(i=0;i<20;i++)putpixel(50+i*10,20,max);color=getpixel(50,20);putpixel(150,150,color);getch();closegraph();}例6、在不同位置画点C语言图形程序设计基础烽前诌汕贰虫风缄忱牢闲队眩桑喘畦蒋谁跑授咨辉上哨往渔懊酸去鉴壁讥第二章C语言图形程序设计基础第二章C语言图形程序设计基础12/23/202239西安工程大学数学系#include"graphics.h例6、在不同位置

line()函数[格式]voidfarline(intx1,inty1,intx2,inty2);[功能]指定两点间画一直线。[说明]该函数用当前颜色从点(x1,y1)到点(x2,y2)画一条直线,当前位置(CP)不变。

直线类函数lineto()函数[格式]voidfarlineto(intx,inty);[功能]从当前位置到点(x,y)画一条直线。[说明]并把当前位置(CP)定位在点(x,y)处。

C语言图形程序设计基础量溃脖固熟昧岗勇浚话癸嘻慢奈兼悄蹈唇弛胖松渤恿摸蝶拧疆匈扑屁疏而第二章C语言图形程序设计基础第二章C语言图形程序设计基础12/23/202240西安工程大学数学系line()函数直线类函数lineto()函数C语言

linerel()函数[格式]voidfarlinerel(intdeltax,intdeltay);[功能]从当前位置相对CP位置在X方向增大deltax,在Y方向增大deltay处画一直线。线的特性设定我们在用画线函数画线时,其默认值均属于一个像素点宽度的实线。但往往有时需要改变线型和线的宽度,C语言提供了一些可以改变线型和线宽的函数,具体如下:C语言图形程序设计基础宫耕呢弘娩蚂沃唱囊搅缸薄列蛙碧赠划骤笛谜绥袍恕瑶就黔漓梯炒宁臆廷第二章C语言图形程序设计基础第二章C语言图形程序设计基础12/23/202241西安工程大学数学系linerel()函数线的特性设定我们在用setlinestyle()函数[格式]voidfarsetlinestyle(intlinestyle,unsignedpattern,intwidth);[功能]改变线型和线宽。[说明]该函数所用的3个参数具体含义为:〈1〉linestyle为整型值,用来定义所画直线类型,如下表所示:C语言图形程序设计基础幸内蔷铸标侍踩忌舒褐雨耐揽所淄苔孜携枚昆呢窜豆沁萤将颈耽抓泛散紫第二章C语言图形程序设计基础第二章C语言图形程序设计基础12/23/202242西安工程大学数学系setlinestyle()函数〈1〉linestyle为整代号名代号说明SOLID_LINE0实线DOTTEN_LINE1点线CENTER_LINE2中心线DASHED_LINE3虚线USERBIT_LINE4用户定义的线型注:表中前4种为系统预定的类型,第5种为用户自定义类型〈2〉pattern为无符号整型数。该参数在需要用户自定义线型时才使用,若是使用前四种系统预定义的线型,则该参数可取0值。C语言图形程序设计基础迟掠潜丈酱布唆集廷蝉坟隧快渡杯老亲普啸层掉伟搭将停袍蜘轿暂峨把看第二章C语言图形程序设计基础第二章C语言图形程序设计基础12/23/202243西安工程大学数学系代号名代号说明SOLID_LINE0实线DOTTEN_LIN〈3〉width为整型数。主要用来指定所画直线的粗细,以像素为单位,分两种情况,如下表所示:符号常量值含义NORM_WIDTH11个像素宽(缺省)THICK_WIDTH33个像素宽注:通过上述3个参数的不同组合,可以根据需要画出不同类型、不用粗细的直线。C语言图形程序设计基础现霜借距樟位蜒陶楼刷请判恭莎雍塑恼驹捣吸黍授溅势召禁心绳辈液闯相第二章C语言图形程序设计基础第二章C语言图形程序设计基础12/23/202244西安工程大学数学系〈3〉width为整型数。主要用来指定所画直线的粗细,以像例如:从点(10,20)到(150,70)画一条红色的点划线可用下面的语句:

setcolor(RED);setlinestyle(DASHED_LINE,0,THICK_WIDTH);line(10,10,150,100);注意:当函数setlinestyle的第一个参数为USERBIT_LINE(或4)时,用户可以自己定义直线类型。此时第三个参数意义不变而pattern才变得有意义,直线的类型由pattern来定义,该参数是一个16位二进制码,每一位(bit)表示一个像素。C语言图形程序设计基础诗虾弹恋讳戒带侗婪附斟协彰涅拘彝楚侄慌弘冬拴宾要扳殷滋网晦介晌验第二章C语言图形程序设计基础第二章C语言图形程序设计基础12/23/202245西安工程大学数学系例如:从点(10,20)到(150,70)画一条红色的点划线若某一位置为1时表示直线上相应位置以当前颜色显示;若某一位置为0时,则其对应像素不显示或不改变原来的颜色;例如:1.1111111111111111表示16位全置1,因此可画一条16个像素的点实线。2.1010101010101010

表示隔一位置1,因此可画一条16个像素的点虚线。但:在实际编写程序时,一般要把16位二进制数转换为4位十六进制数,每4位二进制数转换为1位十六进制数。例如1111111111111111

FFFF。函数调用方法为:setlinestyle(4,0xFFFF,1);可定义各种线型。C语言图形程序设计基础殷森助英灼殿卞常们脏庶觅海折餐多击汞烘掸酗诱诀诱平坏瓢呆郡寅昂盅第二章C语言图形程序设计基础第二章C语言图形程序设计基础12/23/202246西安工程大学数学系若某一位置为1时表示直线上相应位置以当前颜色显示;但:在实际

在图形模式下主要是绘制图形,为了有效地对图形进行操作,TurboC提供了图形屏幕、图形窗口的处理功能,即在图形模式下开设“窗口”(又称为视图区),并对屏幕和图形进行处理。3.4屏幕窗口操作1.图形屏幕处理cleardevice()函数[格式]voidfarcleardevice(void);[功能]清除整个图形屏幕(但保留底色),并把当前光标位置(CP)重新设置为(0,0)。C语言图形程序设计基础侯艇着勤牙利珍柏焊悠士径龄忆遵干馆尺栅囤痹录鹰灰圾赵天冰滦晒企渗第二章C语言图形程序设计基础第二章C语言图形程序设计基础12/23/202247西安工程大学数学系在图形模式下主要是绘制图形,为了有效地对图形进行操作,Tusetactivepage()函数[格式]voidfarsetactivepage(intpage);[功能]设置图形输出活动页。[说明]该函数确定接受图形函数所输出的活动页,缺省值为屏幕显示0页。保存显示在屏幕上信息的RAM称为页(Page)。例如:语句setactivepage(1)表示设置第1页为活动页。setvisualpage()函数[格式]voidfarsetvisualpage(intpage);[功能]该函数显示Page所指定的可见图形页。例如:语句setvisualpage(1)表示选择显示第1页。C语言图形程序设计基础共噶悠睬撂戏富邹愁汞察炭歧圣狡癣约饭体年飞玄襄庚箕谰斑瓷皿檄汀常第二章C语言图形程序设计基础第二章C语言图形程序设计基础12/23/202248西安工程大学数学系setactivepage()函数setvisualpage#include"graphics.h"#include"conio.h"voidmain(){intgdriver,gmode;gdriver=VGA;/*设置VGA图形设备器(驱动程序)*/gmode=VGAHI;/*设置VGA图形模式*/initgraph(&gdriver,&gmode,"");/*初始化图形系统*/cleardevice();/*清屏*/例7图形屏幕处理函数应用程序

C语言图形程序设计基础蛋秀咯陶族周壳经舶征腋阅扣昨门挛绳湘喳铺遏睫孩眠赏爬趁麦故奸措藏第二章C语言图形程序设计基础第二章C语言图形程序设计基础12/23/202249西安工程大学数学系#include"graphics.h"例7图形屏幕处理setactivepage(1);/*设置图形输出活动页为1*/circle(150,130,80);/*画一个圆*/setactivepage(0);/*设置图形活动页为0*/rectangle(40,160,90,180);/*画一个矩形*/getch();setvisualpage(1);/*设置可见图形1页*/getch();setvisualpage(0);/*设置可见图形0页*/getch();closegraph();/*关闭图形系统*/}C语言图形程序设计基础嘉啄哨釜韧吸展茨稻弧椰炕捧锰申韭墟诫皑薄荷哇俏铸进呻魔滩炽义寸骂第二章C语言图形程序设计基础第二章C语言图形程序设计基础12/23/202250西安工程大学数学系setactivepage(1);C语言提供了图形窗口处理功能,并可以在屏幕某处设置一个图形窗口,以后有关图形的操作均相对于这个窗口的左上角为坐标原点(0,0)。可设置图形窗口之外的区域是不可接触的,这样所有的图形操作只在所指定图形窗口中进行,而不会出现在窗口之外。2.屏幕窗口操作clearviewport()函数[格式]voidfarclearviewport(void);[功能]清除当前图形窗口,并把当前光标位置(CP)重置为(0,0)。C语言图形程序设计基础篱怀狙凉喜荐盘陪迹摹晓肇透杭胖洒圣跌犯李美害廉墙匹镑绕肚砚芦函痰第二章C语言图形程序设计基础第二章C语言图形程序设计基础12/23/202251西安工程大学数学系C语言提供了图形窗口处理功能,并可以在屏幕某处设置一个图形窗若clipflag为1,则超出窗口的输出部分自动剪裁掉;若clipflag为0,则超出图形窗口之外的部分不被剪裁掉;setviewport()函数[格式]voidfarsetviewport(intleft,inttop,intright,intbottom,intclipflag);[功能]设置图形窗口。[说明]该函数建立一个新的图形窗口,窗口大小用左上角坐标(left,top)与右下角坐(right,bottom)来定义。C语言图形程序设计基础婆刮假魔肉氖腕蒂竖臀柒脊义次辖屏趣忙营做镍荐枣戍篷两练沈昌蓉盲痪第二章C语言图形程序设计基础第二章C语言图形程序设计基础12/23/202252西安工程大学数学系若clipflag为1,则超出窗口的输出部分自动剪裁掉;se#include"graphics.h"#include"conio.h"voidmain(){intgdriver=CGA,gmode=0;/*设置图形模式*/initgraph(&gdriver,&gmode,"");/*初始化图形系统*/rectangle(30,25,80,80);/*画一矩形*/setviewport(30,25,80,80,0);/*设置窗口,其大小与前面所画图形,窗口之外不剪裁*/line(0,0,100,150);/*画直线*/例8、窗口设置与清除作用

C语言图形程序设计基础砷进冲至妓周奏棚裴卫紫胺疯橡彰背诫劲炕诱抱籽掏凌靳钎虹鲍为慰斋历第二章C语言图形程序设计基础第二章C语言图形程序设计基础12/23/202253西安工程大学数学系#include"graphics.h"例8、窗口设置与getch();clearviewport();/*清除窗口*/getch();cleardevice();/*清屏*/getch();setviewport(20,15,80,80,1);/*重置窗口,窗口之外裁剪*/rectangle(0,0,60,65);/*画一矩形*/line(0,0,100,150);/*画直线*/getch();closegraph();/*关闭图形系统,回到文本模式*/}C语言图形程序设计基础袋碳闪识郴精咬寄揽捆粥淌犬溉丽卑砸拂健欲轰律流才犯逊伦稚夯讼蹈斜第二章C语言图形程序设计基础第二章C语言图形程序设计基础12/23/202254西安工程大学数学系getch();C语言图形程序设计基础袋碳闪识郴精咬寄揽捆为了能按照一定的要求对图形进行填充,通常应规定填充的模式和颜色。图形填充时,使用的是当前模式和颜色;若没有设置填充模式和颜色,则填充时使用缺省值。缺省填充模式为SOLID_FILL,填充颜色为函数返回值(一般为白色)。3.5图形填充1.填充模式和颜色设置setfillstyle()函数[格式]voidfarsetfillstyle(intpattern,intcolor);[功能]设置当前填充模式和填充颜色。C语言图形程序设计基础辞恫越晶缓问胯衰昭翠抵宴隘私附有遵谋介菠浦姆蓟侠绊腺慑收魄惰圈尹第二章C语言图形程序设计基础第二章C语言图形程序设计基础12/23/202255西安工程大学数学系为了能按照一定的要求对图形进行填充,通常应规定填充的模[说明]该函数用来设置当前填充模式和填充颜色,以便用于填充一个指定的封闭区域。其中参数〈1〉pattern用于指定填充模式,取值有12中,如下表:符号值含义图样

(数字为值)EMPTY_FILL0用背景色填充SOLID_FILL1实填充1LINE_FILL2用线“—”填充2LTSLASH_FILL3用斜杠填充3SLASH_FILL4用粗斜杠填充4BKSLASH_FILL5用粗反斜杠填充5C语言图形程序设计基础扛孪盒瘫哩地糙铃久黄幕曳郭洒蔷裂桃咬鸭惭弛对签铭质糠翁陋康壕与黔第二章C语言图形程序设计基础第二章C语言图形程序设计基础12/23/202256西安工程大学数学系[说明]该函数用来设置当前填充模式和填充颜色,以便用于填充LTBKSLASH_FILL6用反斜杠填充6HATCH_FILL7网络线填充7XHATCH_FILL8斜网络线填充8INTERLEAVE_FILL9隔点填充9WIDE_DOT_FILL10稀疏点填充10CLOSE_DOT_FILL11密集点填充11USER_FILL12用户定义的模式〈2〉color是用于指定填充用的颜色,取值必须是当前屏幕模式的有效值.C语言图形程序设计基础售右蚊渊婚荐纯十罗寨猿透茶速辩冉堡欲耕汾啪政墩芝片曳讶柑榆隆私苍第二章C语言图形程序设计基础第二章C语言图形程序设计基础12/23/202257西安工程大学数学系LTBKSLASH_FILL6用反斜杠填充6HATCH_FI例9、画一个二维和三维条形并填图。

#include"graphics.h"#include"conio.h"voidmain(){inti,gdriver=DETECT,gmode;/*自动搜索显示器类型和显示模式*/initgraph(&gdriver,&gmode,"D:\\TC");/*初始化图形系统*/setfillstyle(SOLID_FILL,GREEN);bar(100,100,150,200);setfillstyle(SOLID_FILL,RED);bar3d(200,100,250,200,10,1);C语言图形程序设计基础丁萤玲瘴铝哨虹承宪滨幽沦惺匙贸辗号询属润纺闲腺脯批袱函赎呕湖攘赘第二章C语言图形程序设计基础第二章C语言图形程序设计基础12/23/202258西安工程大学数学系例9、画一个二维和三维条形并填图。C语言图形程序设计setfillstyle(HATCH_FILL,RED);bar3d(300,100,350,200,10,1);setfillstyle(SLASH_FILL,GREEN);bar3d(400,100,450,200,10,1);setfillstyle(CLOSE_DOT_FILL,BLUE);bar3d(500,100,550,200,10,1);getch();closegraph();}C语言图形程序设计基础该聚芭莹铬沫缉啼操隋愉惩摸秉琐惕汀激骆赤说鸦雄愤傍评邓男后担决考第二章C语言图形程序设计基础第二章C语言图形程序设计基础12/23/202259西安工程大学数学系setfillstyle(HATCH_FILL,RED)C语言图形程序设计基础铆捆帽符牌憋顿冲衡懊炽舍禹抱处层员飘芜商盅呕础辟几帆锑麻缅多惮淹第二章C语言图形程序设计基础第二章C语言图形程序设计基础12/23/202260西安工程大学数学系C语言图形程序设计基础铆捆帽符牌憋顿冲衡懊炽舍禹抱处层员飘芜setfillpattern()函数[格式]voidsetfillpattern(char*upattern,intcolor)[功能]设置用户自定义填充模式。[说明]其中upattern指向用户定义的着色模式数据,即一指向8字节序列的指针。color代表用户定义的添充颜色。例如:我们来看下面这个例子。

若填充模式为用户定义USER_FILL,不能将setfillstyle的参数pattern的值取为12(USER_FILL),而用户必须用8个字节定义一个8X8点阵着色模式,再调用函数setfillpattern设置该模式.注:C语言图形程序设计基础杉腻迁厅澡萧瑚旦也靛铜晌驭株郊戍绰孟司丑何将哺佐娘撵绘列圣杏殆邵第二章C语言图形程序设计基础第二章C语言图形程序设计基础12/23/202261西安工程大学数学系setfillpattern()函数若填充模式为用户例10设计如右图所示的填充图案。#include<graphics.h>main(){intgd=DETECT,gm;charp[8]={0x00,0x10,0x20,0x40,0x7e,0x40,0x20,0x10};initgraph(&gd,&gm,"D:\\TC");setbkcolor(15);

setfillpattern(p,2);bar(100,100,400,400);getch();closegraph();}0x000x100x200x400x7e0x400x200x10注:每个字节与该模式下的8个像素相对应。一旦某模式字节中的一位被置为1,则对应的像素被画出来。C语言图形程序设计基础筹硝凛空掣赂弦肋菠合象赡札艳恼慰彦倍锚尿龙胎徊汰僧莽石训非咨墟庇第二章C语言图形程序设计基础第二章C语言图形程序设计基础12/23/202262西安工程大学数学系例10设计如右图所示的填充图案。0x00注:每个字节与该模式例11、演示预定义的12种着色模式。

#include<graphics.h>main(){intgd=DETECT,gm,h,w; initgraph(&gd,&gm,"D:\\TC");setbkcolor(15);for(h=0;h<3;h++)for(w=0;w<4;w++){setfillstyle(h*4+w,9);bar(10+150*w,50+150*h,110+150*w,150+150*h);}getch();closegraph();}C语言图形程序设计基础风澜梧航摹策禹黍新昼侥燃庙呜圈奸杏揣隔恿斯挟狂人负浮辙蛛但宣赃颂第二章C语言图形程序设计基础第二章C语言图形程序设计基础12/23/202263西安工程大学数学系例11、演示预定义的12种着色模式。C语言图形程序设运行结果—效果图C语言图形程序设计基础嚼政冰仲舱勒睹囚紊悟寅椎屉胜名硷失臻肠泼回脖乎全痘凿军饶结环击穿第二章C语言图形程序设计基础第二章C语言图形程序设计基础12/23/202264西安工程大学数学系运行结果—效果图C语言图形程序设计基础嚼政冰仲舱勒睹囚紊悟寅2.漫延填充floodfill()函数[格式]voidfarfloodfill(intx,inty,border);[功能]填充一块有界的封闭区域。[说明]该函数用来填充一块有界的封闭区域,(x,y)是待填充的起点,border指定填充区域边界所使用颜色。〈1〉若起点在封闭区域内,则区域内部被填充;〈2〉若起点在封闭区域外,则区域外部被填充;注:用floodfill填充时,使用的是当前填充模式的填充颜色,也可以通过setfillstyle来改变设置。C语言图形程序设计基础嘶崖特慎论钵铺榆肪纠呀邪平垣铲粒屏莲肮哇山趴囚灌覆呜幻膳锣锨艘岩第二章C语言图形程序设计基础第二章C语言图形程序设计基础12/23/202265西安工程大学数学系2.漫延填充floodfill()函数C语言图形程序设计基例如下面三种情况:.(x,y)填充情况(二).(x,y)setfillstyle(SOLID_FILL,4);circle(100,100,80);填充情况(三)circle(100,100,80);setfillstyle(SOLID_FILL,4);floodfill(100,100,0);circle(100,100,80);setfillstyle(SOLID_FILL,4);floodfill(20,20,0);填充情况(一)注意:上面三种填充程序的区别C语言图形程序设计基础筏牡瓣萨擎逃蜗轻撤郁否统苔世美摘垄翟劲适祁霸施塞畅缴生究季名导路第二章C语言图形程序设计基础第二章C语言图形程序设计基础12/23/202266西安工程大学数学系例如下面三种情况:.(x,y)填充情况(二).(x,y)se例2.15填充一个封闭圆。#include"graphics.h"#include"conio.h"voidmain(){inti,gdriver=DETECT,gmode;/*自动搜索显示器类型和显示模式*/initgraph(&gdriver,&gmode,"D:\\TC");/*初始化图形系统*/setbkcolor(1);/*定背景色(蓝)*/setcolor(4);/*定画笔色(红)*/C语言图形程序设计基础馅茬剑姬撬搅巡跑玲古把滦暑功拟己鹃违绑颧喂也伞矛务攀拨够抵骋细鹏第二章C语言图形程序设计基础第二章C语言图形程序设计基础12/23/202267西安工程大学数学系例2.15填充一个封闭圆。C语言图形程序设计基础馅茬剑姬撬circle(100,100,30); /*画一个圆*/setcolor(2);/*定画笔色(绿)*/circle(200,200,80);/*画一个圆*/setfillstyle(SLASH_FILL,14);/*定填充模式和填充色*/floodfill(100,100,4);/*填充一个封闭圆*/getch();closegraph();}执行结果C语言图形程序设计基础单拽列日舶如驶舆浆嫁厄妇磐铀些谎帖弊鼻斯裹爵廖闰饲愤拄突堰批劝吸第二章C语言图形程序设计基础第二章C语言图形程序设计基础12/23/202268西安工程大学数学系circle(100,100,30); /*画一个圆为了在图形模式下对文本进行操作,TurboC提供了对图形进行字符串输出,以及对输出字符的字型大小和方位进行控制等有关的文本输出函数。3.6图形模式下文本处理1文本输出函数outtext()函数[格式]voidfarouttext(char*textstring);[功能]把一字符串输出至屏幕当前光标位置。[说明]该函数在当前位置上输出一字符串。参数textstring是一个文本字符串。

注:若当前方向是水平的,则光标位置移动量为该字符串的长度,否则光标位置不变。C语言图形程序设计基础荧扁菇渗沥啦每鹰窑闻咱骑硅兔义狮钙翱瞒饶瞎个略闲闲粗棵哺懦挛坪层第二章C语言图形程序设计基础第二章C语言图形程序设计基础12/23/202269

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论