弹跳的球体Word格式.docx

上传人:b****6 文档编号:16553107 上传时间:2022-11-24 格式:DOCX 页数:11 大小:126.40KB
下载 相关 举报
弹跳的球体Word格式.docx_第1页
第1页 / 共11页
弹跳的球体Word格式.docx_第2页
第2页 / 共11页
弹跳的球体Word格式.docx_第3页
第3页 / 共11页
弹跳的球体Word格式.docx_第4页
第4页 / 共11页
弹跳的球体Word格式.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

弹跳的球体Word格式.docx

《弹跳的球体Word格式.docx》由会员分享,可在线阅读,更多相关《弹跳的球体Word格式.docx(11页珍藏版)》请在冰豆网上搜索。

弹跳的球体Word格式.docx

z=A|sin(ωr+θ)|e-krr=(x2+y2)1/2。

二、进度安排

第3周星期一8:

00——12:

00

星期二8:

00

星期三8:

星期四8:

星期五8:

第4周星期一8:

目录

一、课题的主要功能1

二、课题的功能模块的划分1

三、主要功能的实现1

1、功能实现1

2、流程图2

四、程序调试2

五、总结3

六、附件3

计算机与通信学院课程设计评分表9

一、课题的主要功能

本课题实现了一个着色的三维球体,沿着一条给定的轨道(正弦衰弱曲线)不断弹跳,控制键为W键和X键,按W键使运动加速,按X键使运动减速。

并且着色球体在屏幕上连续不断的按照给定的曲线函数跳动,且三维球体自身也要进行翻滚。

二、课题的功能模块的划分

该程序主要分为三个部分:

1、键盘控制部分:

该部分主要是实现对键盘控制的操作,按W键加快三维球体的运动速度,按X键能减慢球体的运动速度。

2、球体运动轨迹设计部分:

主要是确定球体在屏幕上的运动轨迹。

3、球体绘制部分:

该部分主要是绘制一个着色的三维球体,并控制其自身翻滚所沿其经纬度设定。

三、主要功能的实现

1、功能实现

该程序的主要功能我已基本实现,三维球体在屏幕上按照程序给定的正弦衰弱曲线轨道进行跳动并翻转,通过球体经纬度和球体绿色部分的旋转就可以看出来。

当我们从键盘上输入‘W’时球体就会加快运动,并显出字符‘PAGEUP’;

当我们从键盘上输入‘X’时球体就会减慢运动,并显出字符‘PAGEDOWN’。

2、流程图

键盘控制部分:

Y

WX

N

四、程序调试

五、总结

为了这个程序,我真的发了很多心思,其中有很多问题是我不会的,我需要花时间去学习和编程,中间会出现问题,比如在怎样在二维平面上绘制三维球体、球体颜色的填充、球体自身的翻滚等,如果想认真完成这次课设,这些是需要我一步一步解决的。

实际上,在弄懂了程序功能原理的基础上,我们的时间是充余的,做一个粗糙的程序体出来应该是游刃有余的,如果说创新对于我们来说是件难事,那改良总是有可能的。

就像这次我做这个课设时,为了解决问题我仔细的研究老师给的那几个参考例子,并且也借鉴了书上的一些功能函数。

对于课程设计,总的一句话就是要动手,只有自己动手了,书本是那个学的知识才能融会贯通,才能应用与实际。

这个程序所需要的一些基本功能我已经实现啦,但是做工还是有点粗糙,因为自己的能力水平也有限,而且时间有限,我就只能做到这样啦。

到了大四,可以说经过了无数次实验和课设,给我最深的回忆是每次自己独立写出程序的那种快感,这种感觉是不编程人无法体会的,我很庆幸过了四年我这点还没有丢失掉,或许这是我这大学四年留下的最美好的回忆。

六、附件

#include"

stdio.h"

conio.h"

#include<

graphics.h>

/*图形系统头文件*/

math.h>

/

stdlib.h>

windows.h"

#definePI3.14159

longintspeed=1000;

intA=50;

floatw=0.2;

staticdoubleyy=0.0,xx=0.0;

charch;

voidconvey()/*轨迹方程函数*/

{xx=xx+10.0;

yy=200-A*sin(w*xx);

if(xx>

=500&

&

yy>

=400){xx=10.0;

yy=0.0;

}/*设置球体运动的最大坐标*/

return;

}

voidquittime01(intt2)/*按w键加速球体运动*/

{

printf("

PAGEUP\n"

);

speed=1000-t2*50;

Sleep(speed);

voidquittime02(intt4)/*按x键减速球体运动*/

printf("

PAGEDOWN\n"

speed=1000+t4*100;

voidkeyboard(intt1)/*定义判断是否按键控制速度函数*/

if(kbhit())/*判断是否按键*/

{

ch=getch();

switch(ch)

case'

w'

:

quittime01(t1);

/*调用quittime01()函数*/

}

x'

quittime02(t1);

default:

break;

else

{Sleep(speed);

return;

voidsphere(floatR,intalfa,intbeta)

{/*R为球体半径,alfa、beta分别为半径与经纬线的夹角*/

floatx[4],y[4],z[4];

/*定义旋转变换前点坐标数组*/

floatx1[4],z1[4];

/*定义旋转变换后点坐标数组*/

inti,j,k;

floatsx[4],sy[4];

intshfill[10];

/*定义存放了5个顶点坐标序列的数组*/

doubleyn;

doublea1,a2,b1,b2,c,d;

c=alfa*PI/180.0;

/*每次旋转的角度*/

d=beta*PI/180.0;

cleardevice();

for(j=0;

j<

180;

j=j+20)

a1=j*PI/180.0;

a2=(j+20)*PI/180.0;

for(i=0;

i<

360;

i=i+20)

b1=i*PI/180;

b2=(i+20)*PI/180;

x[0]=R*sin(a1)*cos(b1);

/*求出图形旋转前点的坐标*/

y[0]=R*sin(a1)*sin(b1);

z[0]=R*cos(a1);

x[1]=R*sin(a2)*cos(b1);

y[1]=R*sin(a2)*sin(b1);

z[1]=R*cos(a2);

x[2]=R*sin(a2)*cos(b2);

y[2]=R*sin(a2)*sin(b2);

z[2]=R*cos(a2);

x[3]=R*sin(a1)*cos(b2);

y[3]=R*sin(a1)*sin(b2);

z[3]=R*cos(a1);

for(k=0;

k<

4;

k++)/*求出图形旋转后点的坐标*/

x1[k]=x[k]*cos(c)-y[k]*sin(c);

z1[k]=-x[k]*sin(c)*sin(d)-y[k]*cos(c)*sin(d)+z[k]*cos(d);

sx[k]=100-x1[k]+xx;

/*将三维坐标转化为屏幕坐标*/

sy[k]=100-z1[k]+yy;

yn=-(x1[2]-x1[0])*(z1[3]-z1[1])+(x1[3]-x1[1])*(z1[2]-z1[0]);

if(yn>

=0.0)/*对可见部分进行画线,实现消隐*/

moveto(sx[0],sy[0]);

lineto(sx[1],sy[1]);

lineto(sx[2],sy[2]);

lineto(sx[3],sy[3]);

lineto(sx[0],sy[0]);

shfill[0]=(int)sx[0],shfill[1]=(int)sy[0];

shfill[2]=(int)sx[1],shfill[3]=(int)sy[1];

shfill[4]=(int)sx[2],shfill[5]=(int)sy[2];

shfill[6]=(int)sx[3],shfill[7]=(int)sy[3];

shfill[8]=(int)sx[0],shfill[9]=(int)sy[0];

if(i==20)/*对一段经曲面进行填充*/

{setfillstyle(1,GREEN);

setfillstyle(1,RED);

fillpoly(5,shfill);

/*用当前颜色填充多边形*/

voidmain()

{

intgdrive=DETECT,gmode,t;

initgraph(&

gdrive,&

gmode,"

"

/*初始化图形系统*/

setcolor(WHITE);

/*设置当前画笔颜色为白色*/

sphere(50,80,30);

//调用sphere函数

outtextxy(400,20,"

Pressanykeytostart!

getch();

for(t=0;

t<

=45;

t++)

{cleardevice();

sphere(50,t*10,0);

keyboard(t);

convey();

closegraph();

/*关闭图形系统*/

计算机与通信学院课程设计评分表

课题名称:

弹跳的球体

项目

评价

设计方案的合理性与创造性

设计与调试结果

设计说明书的质量

答辩陈述与回答问题情况

课程设计周表现情况

综合成绩

教师签名:

日期:

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育 > 语文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1