c程序设计参考资料

c程序设计参考资料

ID:14638145

大小:488.00 KB

页数:15页

时间:2018-07-29

c程序设计参考资料_第1页
c程序设计参考资料_第2页
c程序设计参考资料_第3页
c程序设计参考资料_第4页
c程序设计参考资料_第5页
资源描述:

《c程序设计参考资料》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、C语言程序设计参考资料一、在图形方式下编程的几个问题1.初始化图形系统初始化图形系统的方法:在程序中加入下述三条语句intdriver,mode;drvier=DETECT;mode=VGAHI;initgraph(&driver,&mode,"");得到的VGA高分辨率图形屏幕(如图1所示).关闭图形系统的方法:调用库函数restorecrtmode();或closegraph();完成各种图形功能的库函数原型在头文件graphics.h中说明,调用这些图形功能函数时需要在源程序中加入#define

2、句图1图形屏幕2.直角坐标和屏幕坐标的变换点、直线等图形的位置通常采用直角坐标来表示,在图形方式下作图时就需要把直角坐标转换成屏幕坐标。图1的右上角文字描述了进行这种坐标变换的方法。在程序设计时可以定义一个函数来完成坐标变换,这个函数的输入参数为直角坐标(x,y),返回对应的屏幕坐标(xs,ys),程序代码如下所示:#definePI3.1415926/*定义常量PI*/#defineXOS20/*定义直角坐标系原点O在屏幕上的位置为:*/#defineYOS240/*水平方向第20个像素,垂直方向第240个像素*/#defi

3、neSCALE_X640/(4.5*PI)/*定义整个屏幕的宽度在直角坐标系中*/#defineSCALE_Y640/(4.5*PI)/*的长度为4.5PI*/voidxytoscreen(doublex,doubley,int*xs,int*ys){(*xs)=XOS+x*SCALE_X;(*ys)=YOS-y*SCALE_Y;}以上各个符号常量和变量的说明见图1右上角文字3.如何在屏幕上画一条曲线屏幕显示区域是由离散的像素组成,一条曲线也是由有限个像素组成的。可以采用如下方法画一条曲线:在曲线上取一些点,将这些点依次用直线

4、段连接成一条折线,当点的数量足够多时,在屏幕上看到的就是一条曲线。图1右下角显示了一条由折线表示的曲线。例如在屏幕上画一条一个周期的正弦曲线,代码如下所示:#defineN200/*定义的常量N表示把区间[0,2*PI]等分成N个点*/doublea,b,x,y,h;intxs,ys,k;a=0;b=2*PI;h=(b-a)/N;x=a;y=sin(x);xytoscreen(x,y,&xs,&ys);moveto(xs,ys);for(k=1;k<=N;k++){x=a+k*h;y=sin(x);xytoscreen(x,y

5、,&xs,&ys);lineto(xs,ys);}注:xytoscreen()函数见第2点moveto(intx,inty)是库函数,功能是把当前作图点移到坐标(x,y)的位置lineto(intx,inty)是库函数,功能是从当前作图点画一线段至坐标(x,y)的位置需要在程序中包含头文件graphics.h4.如何作动画a)可以采用以下方法显示一幅动画:显示前一帧画面à停顿一定时间à擦除前一帧à显示后一帧画面擦除画面的方法:用背景色清除相关区域或用背景色重画前一帧以下程序段完成一条正弦曲线y=sin(x+θ)的动画,其中θ从

6、0到2*PI反复变化。doublex,y,h,a=0,b=4*PI,xita=0,delta=0.2*PI;initgraph(&driver,&mode,"");/*将显示模式设置成VGA图形模式*/setcolor(2);h=(b-a)/N;t1=t2=biostime(0,0);while(inkey()!=32){/*按空格键退出循环*/if(t2>=t1+3){/*停顿三次系统时钟滴答声,1秒时钟滴答声约为18.2次*/setfillstyle(0,0);bar(0,160,639,320);/*这两句完成擦除画面的

7、功能*/xita0=xita0+delta;x=a;y=sin(x+xita);xytoscreen(x,y,&xs,&ys);moveto(xs,ys);for(k=1;k<=N;k++){x=a+k*h;y=sin(x+xita);xytoscreen(x,y,&xs,&ys);lineto(xs,ys);}xita0=xita1;if(xita0>2*PI)xita0=0;t1=t2;}t2=biostime(0,0);}注:inkey()为自定义函数,返回按键的Ascii码intinkey(){intkeyinput;

8、keyinput=0;if(bioskey(1))keyinput=bioskey(0)&0x00ff;returnkeyinput;}/*bioskey()为C库函数,需包含头文件bios.h,keyinput为按键的ascii代码*/setfillstyle(0,0);设

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。