欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载  

    第7章C语言图形编程基础.ppt

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

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

    第7章C语言图形编程基础.ppt

    第7章 C语言的图形编程基础,7.1 图形处理基础 7.2 文本模式下的图形处理 7.3 图形模式下的图形处理,7.1.1图形处理与显示适配器 计算机中的图形显示都是经过显示适配器(也称为显卡、图形适配器)的处理才能输出到显示器屏幕上,显示适配器在图形处理中有着重要的作用。由于显示适配器的不同,所支持的图形模式也不同,下面简单介绍TC 2.0所支持的显示适配器类型。1CGA CGA(彩色图形适配器)是PC/XT等微机配用的显示适配器,它可以显示单色或彩色字符和图形。在图形方式下,TC支持两种分辨率,一种为高分辨率方式(CGAHI),像素数为640*200像素,这时背景色是黑的(可以重新设置),前景色可供选择,但前景色只能是一种,因此图形只显示两种色彩。CGA的另一种为中分辨率显示方式,像素数为320*200像素,其背景色和前景色均可由用户选择,但仅能显示4种颜色。在该显示方式下,可有4种颜色模式供选择,即CGAC0、CGAC1、CGAC2和CGAC3,它们的区别是所显示的4种颜色有所不同。,7.1 图形处理基础,2EGA EGA(增强型图形适配器)除支持CGA的4种显示模式外,还增加了分辨率为640*200像素的16色显示方式,TC中称为EGALO(EGA低分辨率显示方式)和640*350像素的EGA高分辨显示方式(EGAHI),也可显示16色。3VGAVGA(视频图形阵列适配器)是目前流行的PC显示标准,它支持CGA、EGA的所有显示方式,同时还有640*480像素的高分辨率显示方式(VGAHI)、640*350像素的中分辨率显示方式(VGAMED)和640*200像素的低分辨率显示方式(VGALO),它们均有16种显示颜色可供选择。4MCGAMCGA的功能与CGA相似,它和CGA是部分兼容的,但有些功能又和VGA类似,有640*480像素的两色模式。5IBM8514IBM8514适配器具有较强的图形功能,最高分辨率可达1024*768像素,有256种颜色。,7.1 图形处理基础,7.1.2文本模式 图7.1文本模式坐标系统 文本模式就是在文本字符形式下的显示方式,它的显示单位是字符,而在图形模式下,显示的单位是像素。不论是采用文本模式还是图形模式,绘图时都需要对显示字符(或像素)的位置进行定位,这种定位通常是由坐标系统来决定的,由于是以文本模式进行显示,要控制字符的位置就可以用字符显示时的行、列为设置坐标的单位。在缺省方式下,TC规定屏幕坐标为每屏80列25行,屏幕的左上角为1行1列,右下角为25行80列,如图7.1所示。,7.1 图形处理基础,7.1 图形处理基础,图7.1文本模式坐标系统,7.1.3图形模式 在图形处理模式下,显示的基本单位是像素。像素作为图形处理的基本单位,在屏幕上显示为一个点。屏幕上像素的数目就是通常所说的屏幕分辨率,它取决于显示器、显示适配器及屏幕模式。显示图形时,可以通过屏幕坐标系统来决定构成图形的像素位置,在屏幕坐标系统中,以左上角为坐标原点(0,0),向右为x轴的正方向,向下为y轴的正方向,这一点有别于常用的数学坐标系。程序设计中所能使用的像素的数目,也就是屏幕可使用的单位取决于图形系统初始化时的图形模式。,7.1 图形处理基础,7.2.1文本模式设置 在文本模式下处理图形,首先要做的就是设置文本模式,程序设计中,文本模式的设置可以通过函数textmode()来实现。textmode()函数的使用格式如下:textmode(int mode);参数mode(enum text_modes)是将要设置的文本模式。7.2.2文本颜色的设置 在文本模式下输出时,如果使用了彩色的文本模式,就可以设置文本颜色及背景颜色,这些设置可以由相应的函数来完成。1文本颜色 文本颜色设置函数textcolor()可用于设置显示文本的前景色,也就是字符的颜色,该函数使用格式如下:textcolor(int color);参数color(enum COLORS)为设置的颜色。,7.2 文本模式下的图形处理,2文本背景颜色文本颜色设置函数textbackground()可用于设置文本的背景色,该函数使用格式如下:textbackground(int color);参数color为设置的颜色,可使用的参数值为07的8种。3文本属性 文本颜色设置函数textattr()可用于设置文本的属性,包括前景色,背景色,以及字符显示时是否闪烁,该函数使用格式如下:textattr(int attr);参数attr使用了一个字节来描述文本的属性,各位的含义如图7.2所示。,7.2 文本模式下的图形处理,其中低4位(03)用来设置字符显示的颜色(前景色),对应于颜色值015;第46位用于设置背景色;最高位用于设置显示出的字符是否闪烁。在设置属性值时可以通过位运算来控制颜色是设置到字节的具体位。,7.2 文本模式下的图形处理,图7.2文本属性字节的含义,其中低4位(03)用来设置字符显示的颜色(前景色),对应于颜色值015;第46位用于设置背景色;最高位用于设置显示出的字符是否闪烁。在设置属性值时可以通过位运算来控制颜色是设置到字节的具体位。例如,下面的语句将设置蓝色背景下的黄色字符:textattr(YELLOW+(BLUE4);下面的语句将设置白色背景下的红色闪烁字符:textattr(RED+BLINK+(WHITE4);4文本亮度TC中提供了三处可以设置文本亮度的函数,分别如下:highvideo();/*设置文本为高亮显示*/lowvideo();/*设置文本为低亮显示*/normvideo();/*设置文本为正常亮度*/,7.2 文本模式下的图形处理,7.2.3文本窗口与文本输出 文本窗口是文本模式下在屏幕上定义的一个矩形区域,当程序需要在屏幕上显示文本信息时,将只显示在这个窗口中,而不能输出到窗口以外的区域。默认情况下,窗口就是整个屏幕。1文本窗口设置 可以调用window()函数进行窗口的设置,它可以将全屏幕窗口设置为程序所指定的、小于全屏幕的窗口。window()函数使用格式如下:window(int left,int top,int right,int bottom);参数left和right指定窗口第1列和最后1列在全屏幕窗口中的列数,top和bottom指定第1行和最后1行在全屏幕窗口中的行数。当定义了窗口后,前面所学的textcolor()、textbackground()和textattr()函数将只对窗口有效,窗口外区域不受影响。2文本的输出 前面学习过的printf()、puts()和putchar()等函数都是以全屏幕为窗口进行输出,如果要以自定义的窗口为输出对象,则需要使用文本窗口下的输出函数,它们分别是:,7.2 文本模式下的图形处理,cprintf(char*format,);cputs(char*str);putch(int ch);这3个函数的功能相当于printf()、puts()和putchar(),不同的只是在于它们是以窗口而不是以全屏幕为输出对象。cprintf()按格式化字符串输出字符或数据,用法与printf()相同;cputs()输出字符串,用法与puts()相同;putch()输出单个字符,用法与putchar()相同。3屏幕清理 在图形绘制中很多情况下需要一个干净的窗口/屏幕,或者需要删除掉指定的部分内容,TC提供了文本模式下对屏幕进行清理的函数,分别如下:clrscr();clreol();delline();这3个函数都没有参数,clrscr()将整个窗口中的文本全部清除,将光标移到窗口左上角(1,1),如果在执行clrscr()函数前设置过文本颜色、背景颜色或文本属性,则清屏后这些设置将生效。clreol()函数将当前文本从光标位置开始到本行结束的所有字符都清除,但不改变光标位置。delline()函数将清除光标所在行的所有字符。,7.2 文本模式下的图形处理,7.2.4文本图形的绘制1图形字符 前面的学习中,文本中的字符只有常见的文字字符,算不上是文本图形,如果要绘制文本图形,就需要用到扩展ASCII码中的字符图形。2文本图形的移动 TC提供了一个可以移动文本图形的函数movetext(),它可以将指定矩形区域中的文本复制到一个新的位置。该函数格式如下:movetext(int x1,int y1,int x2,int y2,int x3,int y3);movetext()函数可以将左上角为(x1,y1),右下角为(x2,y2)的矩形区域复制到以(x3,y3)为左上角坐标的新位置,并且,原矩形区域内的图形不会改变。需要注意的是,movetext()函数中的坐标是以全屏幕为坐标系统,而与窗口无关。3文本图形的存取 为了方便文本图形的存储,以供多次使用(例如,当某部分区域被掩盖后需要重新绘制时),TC为此提供了可以存取文本图形的函数gettext()。,7.2 文本模式下的图形处理,gettext()函数的格式如下:gettext(int x1,int y1,int x2,int y2,void*buffer);gettext()函数可以将左上角为(x1,y1),右下角为(x2,y2)的矩形区域内的文本图形存储到buffer指定的存储缓冲区,在存储时,矩形内的文本图形按字符从上向下、从左向右连续存储到缓冲区内。在调用该函数前应当先计算出所需的缓冲区大小,由于屏幕上一个字符需要占用2个字节的存储空间1个字节存储ASCII码,另1个字节存储文本属性,因此计算缓冲区大小的公式如下:缓冲区字节=矩形行数*矩形列数*2矩形行数=y2y1+1矩形列数=x2x1+1读取文本图形函数puttext()格式如下:putttext(int x1,int y1,int x2,int y2,void*buffer);putttext()函数可以将buffer指定的存储缓冲区内的文本图形显示到左上角为(x1,y1),右下角为(x2,y2)的矩形区域中。,7.2 文本模式下的图形处理,例1:设计3个不同的窗口并在其中显示彩色的文本,例2:实现在文本图形方式下文本的移动,就像电影中的字幕一样。,例3:在屏幕上输出一张红心5的纸牌图像。,#include stdio.h#include conio.hmain()char*str=彩色文本;clrscr();/*清屏*/window(5,1,20,4);/*设置窗口*/textcolor(YELLOW);/*设置文本颜色*/clrscr();cprintf(n%sn,str);/*输出文本*/window(25,1,40,4);textbackground(BLUE);/*设置背景色*/clrscr();cprintf(n%sn,str);window(45,1,60,4);textattr(BLACK+(WHITE4);/*设置文本属性*/clrscr();cprintf(n%sn,str);getch();/*等待按键*/textattr(WHITE+(BLACK4);/*重新设置为黑底白字*/clrscr();,#include conio.hmain()char*str=Turbo C 2.0;int i;textmode(C80);/*设置文本模式*/window(1,1,80,4);/*设置窗口*/textcolor(YELLOW);/*设置文本颜色*/textbackground(BLUE);/*设置背景色*/clrscr();for(i=70;i1;i-)/*循环输出文字产生移动效果*/delay(10000);/*设置延时*/gotoxy(i,2);/*设置光标位置*/delline();/*删除本行后面的文字*/cprintf(%s,str);/*输出文本*/getch();/*等待按键*/,#include stdio.h#include conio.hmain()int i;textmode(C80);clrscr();window(5,5,20,15);textcolor(BLACK);textbackground(WHITE);clrscr();/*下面程序段输出纸牌边框*/gotoxy(2,2);putch(0 xda);/*定位并输出纸牌左上角图形字符*/for(i=3;i14;i+)/*循环输出上边框的横线*/gotoxy(i,2);/*定位光标*/putch(0 xc4);/*输出横线字符*/gotoxy(14,2);putch(0 xbf);/*定位并输出纸牌右上角图形字符*/for(i=3;i10;i+)/*利用循环输出纸牌左右边框*/gotoxy(2,i);putch(0 xb3);/*输出左边框*/gotoxy(14,i);putch(0 xb3);/*输出右边框*/,gotoxy(2,10);putch(0 xc0);/*定位并输出纸牌左下角图形字符*/for(i=3;i14;i+)/*循环输出下边框的横线*/gotoxy(i,14);/*定位光标*/putch(0 xc4);/*输出横线字符*/gotoxy(14,10);putch(0 xd9);/*定位并输出纸牌右下角图形字符*/textcolor(RED);/*下面程序段输出纸牌上的文字5*/gotoxy(4,3);putch(5);/*输出左上角的文字*/gotoxy(12,9);putch(5);/*输出右下角的文字*/*下面程序段输出红心*/gotoxy(5,4);putch(0 x03);gotoxy(11,4);putch(0 x03);gotoxy(8,6);putch(0 x03);gotoxy(5,8);putch(0 x03);gotoxy(11,8);putch(0 x03);/*按任意键继续*/getch();,7.3.1图形系统的初始化 由于TC中默认的是文本界面,因此在进行图形模式前要先进行图形系统的初始化,并且在绘图结束后还需要将其关闭,还原到文本界面。1图形系统的检测 在对图形系统初始化前,需要先对图形系统进行检测,获取当前显示适配器的型号和分辨率模式。对图形系统的检测由函数detectgraph()来完成,该函数格式如下:detectgraph(int far*graphdriver,int far*graphmode);参数graphdriver为取得的图形适配器类型,graphmode为分辨率模式。当调用detectgraph()函数时,函数将检测到的图形适配器类型赋给graphdriver,将检测到的该类型适配器所支持的最高分辨率模式赋给graphmode。TC 中支持的图形适配器和图形模式很多(enum graphics_modes和graphics_drivers)。如果检测到的适配器不是已有适配器和模式,则返回2表示不支持该适配器。,7.3 图形模式下的图形处理,关于各种指针的使用,请参考相关专业书籍,一般介绍的程序均为near型指针,由于是小程序,因此可省略指针修饰。因此上述函数在使用时可省略如下:detectgraph(参数graphdriver为调用的图形驱动,graphmode为图形模式,pathtodriver为图形驱动程序的存储路径,该参数可省略(用表示),此时在系统当前目录下查找驱动。参数graphdriver可以是任一种图形驱动器名,也可以是对应的数值。参数graphmode可以是图形驱动器对应的图形模式之一,可以使用符号常量,也可以使用数值。,7.3 图形模式下的图形处理,3清除屏幕 在图形绘制前,通常都需要将屏幕进行清理,以便绘图,这就要用到图形模式下的清屏函数cleardevice(),该函数格式如下:cleardevice();cleardevice()函数没有参数,它的用途是清除整个屏幕上的内容。4关闭图形系统当退出图形系统时,需要使用closegraph()函数关闭当前图形系统,使系统回到文本模式状态,该项函数格式如下:closegraph();closegraph()函数没有参数,执行时将关闭图形系统,并将图形系统驱动程序从内存中清除。7.3.2基本图形绘制 1画笔坐标定位 在图形绘制中,通常将绘图的工具称为画笔,TC中也沿用了这一名称。在绘图时,屏幕就相当于是绘图纸,在绘图时,需要将画笔落在纸上,这就是画图开始的位置;在绘图过程中还经常要将画笔抬起,移到另一个位置再画。所有这些操作,都需要对画笔的坐标进行控制,为此,TC中提供了完成这些功能的函数,,7.3 图形模式下的图形处理,2绘图颜色的设置为了能给制丰富多彩的图形,TC提供了颜色设置函数,分别如下:setcolor(int color);setbkcolor(int color);setcolor()函数用于设置前景色,即画笔颜色,setbkcolor()函数用于设置背景色。参数color(enum COLORS)3点与直线的绘制点的绘制由putpixel()函数完成,该函数格式如下:putpixel(int x,int y,int color);putpixel()函数将在点(x,y)用color指定的颜色绘制一个点。如果想要取得某一点的颜色,可使用函数getpixel()来完成,该函数格式如下:int getpixel(int x,int y);getpixel()函数将获取并返回点(x,y)的颜色值。绘制直线的函数有多个,分别如下:,7.3 图形模式下的图形处理,line(int x0,int y0,int x1,int y1);lineto(int x,int y);linerel(int dx,int dy);函数line()用于从点(x0,y0)到点(x1,y1)绘制一条直线。函数lineto()用于从当前位置开始绘制一条到点(x,y)的直线。函数linerel()用于绘制一条与当前位置相对的点(x+dx,y+dy)的直线。直线绘制时,由于没有设置颜色的参数,将使用最近一次设置的前景颜色。4矩形与实心矩形的绘制矩形函数rectangle()可用于绘制矩形框,使用格式如下:rectangle(int x1,int y1,int x2,int y2);rectangle()函数将在以(x1,y1)为左上角,(x2,y2)为右下角的矩形区域内绘制一个空心的矩形框。函数bar()可用于绘制实心矩形,使用格式如下:bar(int x1,int y1,int x2,int y2);bar()函数将在以(x1,y1)为左上角,(x2,y2)为右下角的矩形区域内绘制一个实心的矩形,矩形内部的填充模式和颜色可以使用相关函数进行设计,如果没有设置,则使用缺省模式。,7.3 图形模式下的图形处理,5圆、椭圆与圆弧的绘制绘制圆形的函数是circle(),使用格式如下:circle(int x,int y,int radius);circle()函数将绘制一个以(x,y)为圆心,以radius为半径的圆形。绘制椭圆的函数是ellipse(),使用格式如下:ellipse(int x,int stangle,int endangle,int xradius,int yradius);该函数将以(x,y)为中心,以xradius 和yradius为x轴和y轴半径,从起始角stangle到endangle角结束,画椭圆弧线。当设置stangle为0,endangle为360时,则绘制的是一个完整椭圆,否则绘出的将是椭圆弧,如图7.3所示。图7.3中,角度设置时以x轴的正方向为0,度数以逆时针方向递增,当为360时正好是一个完整的椭圆。,7.3 图形模式下的图形处理,7.3 图形模式下的图形处理,图7.3椭圆的绘制,6线型设置 在前面所绘的图形中,图形线条都是1个像素宽的实线,其实,在程序中还可以设置线条的宽窄和线型,这些可以由函数setlinestyle()来设置,该函数使用格式如下:setlinestyle(int linestyle,unsigned upattern,int thickness);其中,参数linestyle(enum line_styles)用于设置线型。7.3.3封闭图形 在前面的学习中,除bar()外,绘制的图形都只是线条或空心轮廓(如圆、弧线等),有时在程序中需要绘制出填充了色彩或图案样式的封闭图形,这样的图形可以通过两种方法进行绘制:使用TC提供的绘制封闭图形的函数;或者绘制出图形轮廓后通过填充函数进行色彩的填充。1绘制封闭图形 TC提供了绘制封闭图形的函数,可以用于绘制填充了色彩(或图案样式)的扇形、椭圆和三维立体直方图等封闭图形。,7.3 图形模式下的图形处理,绘制扇形的函数是pieslice(),使用格式如下:pieslice(int x,int y,int stangle,int endagnle,int radius);该函数将以(x,y)为中心,以radius为半径,从起始角stangle到endangle角结束,绘制圆扇形。图形内部的填充模式和颜色可以使用相关函数进行设置,如果没有设置,则使用缺省模式。绘制封闭椭圆的函数是fillellipse(),使用格式如下:fillellipse(int x,int y,int xradius,int yradius);该函数将以(x,y)为中心,以xradius和yradius为x轴和y轴半径,绘制封闭的椭圆。图形内部的填充模式和颜色可以使用相关函数进行设置,如果没有设置,则使用缺省模式。绘制椭圆扇形的函数为sector(),使用格式如下:sector(int x,int y,int stangle,int endangle,int xradius,int yradius);该函数将以(x,y)为中心,以xradius 和yradius为x轴和y轴半径,从起始角stangle到endangle角结束,绘制椭圆扇形。,7.3 图形模式下的图形处理,绘制三维立体直方图的函数是bar3d(),格式如下:bar3d(int x1,int y1,int x2,int y2,int depth,int topflag);函数中各参数的含义参见下图。当topflag为0时绘制出三维立柱的顶部,否则将不绘制出顶部。绘制多边形的函数为fillpoly(),使用格式如下:fillpoly(int numpoints,int far*polypoints);该函数将绘制一顶点数为numpoints,各顶点坐标由polypoints给出的多边形。所绘出的多边形的边数为numpoints1,如果是绘制封闭图形,则第一个顶点和最后一个顶点的坐标相同。,7.3 图形模式下的图形处理,7.3 图形模式下的图形处理,图7.4三维立体直方图,2封闭图形的填充样式在缺省情况下,绘制出的封闭图形都是使用单白色实填充,如果需要设置填充色和填充样式,可以通过函数setfillstyle()实现,该函数使用格式如下:setfillstyle(int pattern,int color);setfillstyle()函数用于设置填充样式和颜色,参数color为填充色,pattern(enum fill_patterns)为填充样式。3任意封闭图形的填充前面学习过的填充,都只是对于特定函数产生的图形,如果需要对任意的封闭图形进行填充,则可以使用函数floodfill()来完成,格式如下:floodfill(int x,int y,int border);该函数将对点(x,y)所在的、以border为封闭边界颜色的区域进行填充。其中,(x,y)可以是封闭区域中的任意一点,但不能在边界上;如果(x,y)所在区域不是封闭区域,则填充将溢出到所有相连的区域;border必须是封闭区域的轮廓颜色,否则可能出错。,7.3 图形模式下的图形处理,例4:在屏幕上绘制出扇形、三维直方体图和六边形等各种封闭图形。,#include graphics.hmain()int driver=DETECT;int mode;int p=390,70,440,10,520,10,570,70,520,130,440,130,390,70;/*设置多边形顶点*/initgraph(,7.3.4屏幕操作为了方便对屏幕图像的操作,如重绘、移动等,TC提供了一系列的屏幕操作函数。1屏幕图像的存储与显示将屏幕图像存储到内存的函数是getimage(),格式如下:getimage(int x1,int y1,int x2,int y2,void far*bitmap);该函数将屏幕上以(x1,y1)为左上角,以(x2,y2)为右下角的矩形区域内的图像存储到指针bitmap所指定的内存中。其中,bitmap所指为存储图像的内存缓冲区,该缓冲区的大小可由函数imagesize()取得,该函数格式如下:int imagesize(int x1,int y1,int x2,int y2);该函数执行时返回屏幕上以(x1,y1)为左上角,以(x2,y2)为右下角的矩形区域图像存储所需要的字节数。函数putimage()可将存储在内存中的图像显示到屏幕上,格式如下:putimage(int x1,int y1,void far*bitmap,int op);该函数将指针bitmap所指内存空间所存储的图像按op(enum putimage_ops)所指定的操作显示到以(x1,y1)为左上角的区域。,7.3 图形模式下的图形处理,2图形窗口与文本窗口相似,在图形方式下也可以将屏幕上任意矩形区域设置为一个窗口,以后的操作都在这个窗口中进行。在定义了图形窗口后,图形操作的坐标都是以窗口左上角为(0,0)点,而不是以屏幕左上角为(0,0)点。定义图形窗口的函数setriewport()如下:setviewport(int x1,int y1,int x2,int y2,int clipflag);该函数将屏幕上以(x1,y1)为左上角,以(x2,y2)为右下角的矩形区域定义为一个窗口,参数clipflag指定当所绘图形超出窗口边界时的处理方式:如果值为1,则超出部分将被减去,不能显示出来;如果值为0,则超出部分仍将绘制出来。函数clearviewport()可用于清除图形窗口的内容,格式如下:clearviewport();,7.3 图形模式下的图形处理,函数getviewsettings()用于获取当前窗口信息,格式如下:getviewsettings(struct viewporttype fat*viewport);该函数将取得的窗口信息存储到结构 viewporttype中,该结构定义如下:struct viewporttypeint left,top,right,bottom;/*窗口的左、上、右、下对应的坐标数据*/int clip;/*窗口超出部分的处理方式*/;利用窗口和屏幕图像的存取,可以很方便地实现图形动画,例如,可以在不同的窗口中绘制出同样的图形,再按一定的时间间隔在不同的位置绘制出该窗口;或者将存储的图像在不同的位置按一定的时间间隔进行复制。,7.3 图形模式下的图形处理,例5:综合实例:文本窗口与菜单,例6:综合实例:花瓣图案,#include conio.hvoid box(int x,int y,int width,int high);main()int i;char*menu=File,Edit,Run,Compile,Window;/*定义水平菜单字符串*/textmode(C80);textattr(WHITE+(BLACK4);clrscr();window(1,1,60,25);/*定义程序窗口*/textattr(RED+(LIGHTGRAY4);clrscr();for(i=0;i5;i+)/*输出水平菜单字符*/gotoxy(5+i*10,1);cprintf(%s,menui);window(2,2,58,25);/*定义编辑窗口*/textattr(WHITE+(BLUE4);clrscr();box(1,1,57,22);/*调用box()绘制编辑窗口边框*/window(1,25,60,25);/*定义底部信息窗口*/textattr(BLACK+(LIGHTGRAY4);clrscr();gotoxy(5,1);cprintf(F1-Help F5-Zoom F6-Switch F7-Trace);/*输出信息窗口字符*/getch();,/*box()函数用于输出一个矩形字符边框*/void box(int x,int y,int width,int high)int i;gotoxy(x,y);putch(0 xda);for(i=x+1;iwidth;i+)putch(0 xc4);putch(0 xbf);for(i=y+1;ihigh;i+)gotoxy(x,i);putch(0 xb3);gotoxy(width,i);putch(0 xb3);gotoxy(x,high);putch(0 xc0);for(i=x+1;iwidth;i+)putch(0 xc4);putch(0 xd9);return;,#define PI 3.1415926#include math.h#include graphics.hmain()int graphdriver=DETECT;int graphmode;float i,j,x1,x2,y1,y2;detectgraph(,

    注意事项

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

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




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开