《图形及音乐编程》PPT课件.ppt_第1页
《图形及音乐编程》PPT课件.ppt_第2页
《图形及音乐编程》PPT课件.ppt_第3页
《图形及音乐编程》PPT课件.ppt_第4页
《图形及音乐编程》PPT课件.ppt_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

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

文档简介

C程序设计|第九章,图形及音乐编程基础,第九章,C程序设计|第九章,图形显示基础基本绘图函数画线的线型设定函数封闭图形的填色函数及有关画图函数图形模式下的文本输出音乐编程,本讲主要内容,C程序设计|第九章,本章所介绍的内容需要在TurboC或WIN-TC的平台下调试和运行。,TurboC为用户提供了一个功能很强的画图软件库,又称为BorLand图形接口(BGI),它包含图形库文件(graphics.lib)、图形头文件(graphics.h)、许多图形显示器的驱动程序和一些字符集的字体驱动程序。用户在自己的画图源程序中必须包含graphics.h头文件,在进行目标程序连接时,要将graphics.lib连接到自己的目标程序中去。,图形显示基础,C程序设计|第九章,图形系统的初始化函数voidfarinitgraph(intfar*graphdriver,intfar*graphmode,char*path);图形系统检测函数voidfardetectgraph(intfar*graphdriver,intfar*graphmode);,图形系统初始化及检测,其中graphdriver和graphmode分别表示图形驱动器和模式,path是指图形驱动程序所在的目录路径。,C程序设计|第九章,初始化实现图形系统,以坐标点(100,100)为圆心画一个半径为50的圆。,#includegraphics.hmain()intgraphdriver=DETECT,graphmode;initgraph(,图形初始化示例,例9.1,C程序设计|第九章,图形检测函数的使用。,#includegraphics.hmain()intgraphdriver;intgraphmode;detectgraph(,图形初始化示例,例9.2,C程序设计|第九章,在文本方式下,屏幕被分成25、40或50行,80或40列宽。系统默认的坐标是:原点在屏幕左上角(1,1),坐标是整数,X坐标从左向右增加,Y坐标从上到下增加。在图形方式下,屏幕被划分为像素,每个像素在屏幕上显示一个点。像素的个数取决于机器中安装的视频适配器的类型和适配器的工作方式。系统默认的坐标是:原点在屏幕左上角(0,0),坐标为整数,X坐标从左向右增加,Y坐标从上到下增加。屏幕上的X、Y值都有一个最大值。,图形坐标,C程序设计|第九章,在以点(320,220)为原点的新坐标系中,画一个以该坐标系中的点(50,50)为圆心,半径为50的圆。,#includegraphics.hmain()intgraphdriver=DETECT,graphmode;intbefore_x,before_y,later_x=50,later_y=50;intorigin_x=320,origin_y=220;initgraph(,图形坐标使用,例9.3,C程序设计|第九章,用白色的背景,红色的画笔,以点(100,100)为圆心,50为半径作一个圆。,#includegraphics.hmain()intgraphdriver=DETECT,graphmode;initgraph(,背景色和作图色的设置,例9.4,在C语言中,图形模式的屏幕颜色设置分为背景色的设置和作图色的设置。背景色的设置通过函数setbkcolor(intcolor),作图色的设置通过对函数setcolor(intcolor)的调用来实现的。,C程序设计|第九章,基本绘图函数,画点函数voidfarputpixel(intx,inty,intcolor);intfargetpixel(intx,inty);位置函数voidfarmoveto(intx,inty);voidfarmoverel(intdx,intdy);intfargetx(void);intfargety(void);,C程序设计|第九章,它将在y=20的恒定位置上,沿x方向从x=200开始,连续画两个点(间距为4个像素的距离),又间隔16个点位置,再画两个点,如此循环,直到x=300为止,每画出的两个点中的第一个由putpixel(x,20,1)所画,第二个则由putpixel(x+4,20,2)画出,颜色值分别设为14和5。,基本绘图示例,例9.5,#includegraphics.hmain()intgraphdriver=DETECT,graphmode,x;initgraph(,C程序设计|第九章,基本绘图函数,画线函数voidfarline(intx0,inty0,intx1,inty1);voidfarlineto(intx,inty);voidfarlinerel(intdx,intdy);,C程序设计|第九章,基本绘图函数,画矩形和条形图函数voidfarrectangle(intxl,inty1,intx2,inty2);voidbar(intx1,inty1,intx2,inty2);,C程序设计|第九章,基本绘图函数,画椭圆、圆和扇形图函数voidellipse(intx,inty,intstangle,intendangel,intxradius,intyradius);voidfarcircle(intx,inty,intradius);voidfararc(intx,inty,intstangle,intendangle,intradius);voidfarpieslice(intx,inty,intstangle,intendangle,intradius);,C程序设计|第九章,基本绘图函数,画线型设定函数voidfarsetlinestyle(intlinestyle,unsignedupattern,intthickness);,Linestyle:整型变量。设定所画直线的类型;upattern:无符号整型变量。thickness:整型变量。不设定时,取缺省值,即一个像素宽,当设定为3时,可取3个像素宽。,C程序设计|第九章,填色及有关函数,填色函数voidfarsetfilestyle(intpattern,intcolor);,该函数将用设定的color颜色和pattern图模式对后面画出的轮廓图进行填充,这些图轮廓是由待定函数画出的,color实际上就是调色板寄存器索引号,对VGAHI方式为0l5,即l6色。pattern表示填充模式。,C程序设计|第九章,填色及有关函数,画三维立体直方图函数voidfarbar3d(intx1,inty1,intx2,inty2,intdepth,inttopflag);,画椭圆扇形函数viodfarsector(intx,inty,intstangle,intendang1e,intxradius,intyradius);,C程序设计|第九章,填色及有关函数,画椭圆函数voidfarfillellipse(intx,inty,intxradius,intyradius);,画多边形图函数voidfarfillpoly(intnumpoints,intfar*polypoints);,C程序设计|第九章,填色及有关函数,可对任意封闭图形填充的函数voidfarfloodfill(intx,inty,intborder);,该函数将对一封闭图形进行填充,其颜色和模式将由设定的或缺省的图模与颜色决定。其中参数(x,y)为封闭图形中的任一点,border是封闭图形的边框颜色。编程时该函数位于画图形的函数之后,即要填充该图形。,C程序设计|第九章,图形模式下的文本输出,文本输出函数voidfarouttext(charfar*textstring);voidfarouttextxy(intx,inty,charfar*textstring);intsprintf(char*str,char*format,variable-list);,C程序设计|第九章,图形模式下的文本输出,有关文本字体、字型和输出方式的设置函数voidfarsettexjustify(inthoriz,intvert);voidfarsettextstyle(intfont,intdirection,intcharsize);,C程序设计|第九章,音乐编程,有关文本字体、字型和输出方式的设置函数voidsound(unsignedfrequency);voidnosound(void);voiddelay(unsignedmilliseconds);,C程序设计|第九章,1.画条形图程序。2.使用覆盖刷新法来实现车轮在隧道中滚动。3.自动弹奏歌曲樱花。,编程练习,要求:在TC或WIN-TC环境下,通过师生互动的形式完成编程。,C程序设计|第九章,本章对C语言的图形功能做了详细的介绍,特别着重阐述了其丰富的库函数,并引申到了动画的基本设计方法。同时也介绍了计算机发声的基本原

温馨提示

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

评论

0/150

提交评论