博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
第四周作业
阅读量:5361 次
发布时间:2019-06-15

本文共 1309 字,大约阅读时间需要 4 分钟。

一、博客作业

1.对冰球桌环境仿真模块的思路

   前言:一开始看到这个作业我是完全没有思路的,直至我打开了我的IPHONE手机,发现苹果虚设的HOME键-Assistive Touch,它能随我的手指移动而移动,于是我将其与冰球桌的击球器联系在一起。

①击球器的控制

   由前言可知,实现一个击球器的控制,需要先能实现一个圆(击球器)能随手指移动,这一软件模块主要技术点在于View的应用、触摸事件处理等(由于本人编程语言技术实在太差。。只能翻阅资料查找相关的知识点。。)

②位置的控制

   由于是二维的环境,可在边界交点处设立一个原点,那么击球器和冰球的位置皆可用F(x,y)来确定,即设计一个变量记录击球器和冰球的位置。

③击球过程

   由于有俩个变量实时记录着击球器和冰球的位置情况,在未设定好击球器的半径和冰球的半径下,当俩个变量相等时,设定一个Impact=ture,触发击球器和冰球有一个“碰撞”的效果(即碰撞函数),“碰撞”后才能使得冰球产生一个速度矢量。根据现实中两球相碰的物理情况,冰球总是会沿直线运动,因此为了实现这一个过程,需要用一个主函数来显示冰球,速度的确定,可以用动量守恒定律,在每次碰撞的瞬间,应使得击球器在一瞬间静止,将冰球的速度(标量)完全返回给冰球,且方向相反,使得冰球沿一个直线轨迹运动。

④约束

   在边界处也设定一个IMPACT,当IPMACT=TURE时,触发冰球函数的碰撞函数

二、编程作业

struct BALL_parameter{         //冰球的运动参数

    double Position_BALL;      //位置
    double Velocity_BALL;      //速度
};

struct BALL_state{        //冰球的状态

    bool Request;          //是否接受指指令
    bool Done;             //是否已完成运动指令
    bool Impact;          //是否接受碰撞的指令

};

struct impact{           //碰撞指令
    double Position;
    double Velocity;
};

class BALL

{

public:

    BALL_state State;                                                        //定义数据成员冰球的状态
    BALL_parameter Parameter;                                         //定义数据成员冰球运动参数
    impact Impact;                                                            //定义数据成员碰撞指令
    void SET_BALL(BALL_state, BALL_parameter, impact);   //冰球初始化函数 
    int path_line();                                                          //冰球的运动轨迹
    int Imapct_Line();                                                     //冰球碰撞的运动轨迹                          
    BALL_state Get_state();                                             //返回冰球对象的状态
    BALL_parameter Get_parameter();                             //返回冰球对象的参数
    impact Get_impact();                                                //返回冰球对象的接受命令参数
    void take_order();                                                    //执行命令,并及时更新冰球状态
};

 

转载于:https://www.cnblogs.com/ouxiaohui/p/6197278.html

你可能感兴趣的文章
【iOS开发-68】APP下载案例:利用tableView自带的cell布局+缓存池cell复用时注意button状态的检查...
查看>>
《Genesis-3D开源游戏引擎-FQA常见问题解答》2014年01月10号版本
查看>>
Java 编程下实现随机无重复数字功能
查看>>
Android 编程下的代码混淆
查看>>
animation属性
查看>>
页内的模块和组件抽象规划经验
查看>>
安全-分析深圳电信的新型HTTP劫持方式
查看>>
将Centos的yum源更换为国内的阿里云源
查看>>
git diff 的用法
查看>>
一段sql的优化
查看>>
十进制与十六进制的相互转换
查看>>
在Flex中用Validator检测数字、字符串、Email.
查看>>
[leetcode]4Sum
查看>>
POJ1062 昂贵的聘礼
查看>>
【零基础学习iOS开发】【02-C语言】08-基本运算
查看>>
Java 将指定字符串连接到此字符串的结尾 concat()
查看>>
Hibernate Criterion
查看>>
Python知识
查看>>
我们为什么要搞长沙.NET技术社区(三)
查看>>
杭电acm Cake
查看>>