《图形及音乐编程.ppt》由会员分享,可在线阅读,更多相关《图形及音乐编程.ppt(25页珍藏版)》请在三一办公上搜索。
1、程序设计|第九章,图形及音乐编程基础,第九章,程序设计|第九章,图形显示基础基本绘图函数画线的线型设定函数封闭图形的填色函数及有关画图函数图形模式下的文本输出音乐编程,本讲主要内容,程序设计|第九章,本章所介绍的内容需要在Turbo C 或WIN-TC的平台下调试和运行。,Turbo C为用户提供了一个功能很强的画图软件库,又称为BorLand图形接口(BGI),它包含图形库文件(graphics.lib)、图形头文件(graphics.h)、许多图形显示器的驱动程序和一些字符集的字体驱动程序。用户在自己的画图源程序中必须包含graphics.h头文件,在进行目标程序连接时,要将graphic
2、s.lib连接到自己的目标程序中去。,图形显示基础,程序设计|第九章,图形系统的初始化函数void far initgraph(int far*graphdriver,int far*graphmode,char*path);图形系统检测函数 void far detectgraph(int far*graphdriver,int far*graphmode);,图形系统初始化及检测,其中graphdriver和graphmode分别表示图形驱动器和模式,path是指图形驱动程序所在的目录路径。,程序设计|第九章,初始化实现图形系统,以坐标点(100,100)为圆心画一个半径为50的圆。,#i
3、nclude graphics.hmain()int graphdriver=DETECT,graphmode;initgraph(,图形初始化示例,例9.1,程序设计|第九章,图形检测函数的使用。,#include graphics.hmain()int graphdriver;int graphmode;detectgraph(,图形初始化示例,例9.2,程序设计|第九章,在文本方式下,屏幕被分成25、40或50行,80或40列宽。系统默认的坐标是:原点在屏幕左上角(1,1),坐标是整数,X坐标从左向右增加,Y坐标从上到下增加。在图形方式下,屏幕被划分为像素,每个像素在屏幕上显示一个点。像
4、素的个数取决于机器中安装的视频适配器的类型和适配器的工作方式。系统默认的坐标是:原点在屏幕左上角(0,0),坐标为整数,X坐标从左向右增加,Y坐标从上到下增加。屏幕上的X、Y值都有一个最大值。,图形坐标,程序设计|第九章,在以点(320,220)为原点的新坐标系中,画一个以该坐标系中的点(50,50)为圆心,半径为50的圆。,#include graphics.hmain()int graphdriver=DETECT,graphmode;int before_x,before_y,later_x=50,later_y=50;int origin_x=320,origin_y=220;init
5、graph(,图形坐标使用,例9.3,程序设计|第九章,用白色的背景,红色的画笔,以点(100,100)为圆心,50为半径作一个圆。,#include graphics.hmain()int graphdriver=DETECT,graphmode;initgraph(,背景色和作图色的设置,例9.4,在C语言中,图形模式的屏幕颜色设置分为背景色的设置和作图色的设置。背景色的设置通过函数setbkcolor(int color),作图色的设置通过对函数setcolor(int color)的调用来实现的。,程序设计|第九章,基本绘图函数,画点函数 void far putpixel(int x
6、,int y,int color);int far getpixel(int x,int y);位置函数void far moveto(int x,int y);void far moverel(int dx,int dy);int far getx(void);int far gety(void);,程序设计|第九章,它将在y=20 的恒定位置上,沿x方向从x=200 开始,连续画两个点(间距为4个像素的距离),又间隔16 个点位置,再画两个点,如此循环,直到x=300 为止,每画出的两个点中的第一个由putpixel(x,20,1)所画,第二个则由putpixel(x+4,20,2)画出,
7、颜色值分别设为14和5。,基本绘图示例,例9.5,#include graphics.hmain()int graphdriver=DETECT,graphmode,x;initgraph(,程序设计|第九章,基本绘图函数,画线函数 void far line(int x0,int y0,int x1,int y1);void far lineto(int x,int y);void far linerel(int dx,int dy);,程序设计|第九章,基本绘图函数,画矩形和条形图函数 void far rectangle(int xl,int y1,int x2,int y2);void
8、 bar(int x1,int y1,int x2,int y2);,程序设计|第九章,基本绘图函数,画椭圆、圆和扇形图函数 void ellipse(int x,int y,int stangle,int endangel,int xradius,int yradius);void far circle(int x,int y,int radius);void far arc(int x,int y,int stangle,int endangle,int radius);void far pieslice(int x,int y,int stangle,int endangle,int r
9、adius);,程序设计|第九章,基本绘图函数,画线型设定函数 void far setlinestyle(int linestyle,unsigned upattern,int thickness);,Linestyle:整型变量。设定所画直线的类型;upattern:无符号整型变量。thickness:整型变量。不设定时,取缺省值,即一个像素宽,当设定为3 时,可取3个像素宽。,程序设计|第九章,填色及有关函数,填色函数 void far setfilestyle(int pattern,int color);,该函数将用设定的color颜色和pattern 图模式对后面画出的轮廓图进行填
10、充,这些图轮廓是由待定函数画出的,color实际上就是调色板寄存器索引号,对VGAHI 方式为0l5,即l6 色。pattern 表示填充模式。,程序设计|第九章,填色及有关函数,画三维立体直方图函数 void far bar3d(int x1,int y1,int x2,int y2,int depth,int topflag);,画椭圆扇形函数 viod far sector(int x,int y,int stangle,int endang1e,int xradius,int yradius);,程序设计|第九章,填色及有关函数,画椭圆函数 void far fillellipse(i
11、nt x,int y,int xradius,int yradius);,画多边形图函数 void far fillpoly(int numpoints,int far*polypoints);,程序设计|第九章,填色及有关函数,可对任意封闭图形填充的函数 void far floodfill(int x,int y,int border);,该函数将对一封闭图形进行填充,其颜色和模式将由设定的或缺省的图模与颜色决定。其中参数(x,y)为封闭图形中的任一点,border是封闭图形的边框颜色。编程时该函数位于画图形的函数之后,即要填充该图形。,程序设计|第九章,图形模式下的文本输出,文本输出函数
12、 void far outtext(char far*textstring);void far outtextxy(int x,int y,char far*textstring);int sprintf(char*str,char*format,variable-list);,程序设计|第九章,图形模式下的文本输出,有关文本字体、字型和输出方式的设置函数 void far settexjustify(int horiz,int vert);void far settextstyle(int font,int direction,int charsize);,程序设计|第九章,音乐编程,有关文
13、本字体、字型和输出方式的设置函数 void sound(unsigned frequency);void nosound(void);void delay(unsigned milliseconds);,程序设计|第九章,1.画条形图程序。2.使用覆盖刷新法来实现车轮在隧道中滚动。3.自动弹奏歌曲樱花。,编程练习,要求:在TC或WIN-TC环境下,通过师生互动的形式完成编程。,程序设计|第九章,本章对C语言的图形功能做了详细的介绍,特别着重阐述了其丰富的库函数,并引申到了动画的基本设计方法。同时也介绍了计算机发声的基本原理,进行了简单音乐编程的设计。通过本章的学习,读者应该能够编制基本的图形程序和音乐程序。要注意的是,本章所介绍的内容基于Turbo C或WIN-TC平台。C语言面向对象和可视化系列版本对图形和音乐的处理已不再使用该种方式。请注意程序的运行和调试环境。,小结,程序设计|第九章,复习教材第九章内容预习教材第十章内容上机实习内容:实验十四 图形及音乐编程操作完成第九章的全部习题,本章课后作业,