小组讨论

今天大家讨论了之前各自想的方案的问题,基本确定了寻找击球点的方案,以及击球手运动轨迹规划的方案,这里我只是简单的说下我们的击球点的确定方案。

击球策略方案

方案分析



首先我们建立平面在直角坐标系,图中算法选择线为六等分线,是我们选择不同击球方案的一条分界线,我们的击球行为大部分发生在击球区,击球区的大小按照两条四等分线确定。

策略假定

1 假定不考虑对方击球手阻挡等情况

2 假定只考虑击球手速度对准冰球球心

3 假定必要时可以优先防守,再考虑进球

4 假定击球手击球时速度大小固定为最大速度

算法框图

方案图示

图一

当冰球轨迹曲线与击球区边界发生的第一个交点在算法分界线左侧,并且冰球按照轨迹会进入球门时,我们只做防守不进攻,将球沿原方向反向撞回。

图二

当冰球轨迹曲线与击球区边界发生的第一个交点在算法分界线左侧,但冰球不会进入我方球门时,让冰球在我方球门壁反弹一次进入击球区,随机选择击球区内冰球运动轨迹上一点为撞击时冰球位置,然后根据速度矢量合成,确定击球点以及击球手速度。

图三

当冰球轨迹曲线与击球区边界发生的第一个交点在算法分界线右侧时,直接以该交点作为撞击时冰球中心,根据速度矢量合成,确定击球点以及击球手速度。

算法的问题

1 对于速度矢量合成过程中,击球手的速度大小和方向为一组相关的变量,方程组只能解出速度大小与方向的关系,所以我们是确定速度来定方向,但实际上应该是用最优解的思想,我们为了简化,没有进行分析。

2 我们有一个疑问:物理引擎组应该是做的如何模拟实际的物理碰撞过程,比如动量守恒,动能守恒等等。这样的话,我们策略寻找击球点过程中会遇到速度合成的问题,这样我们分析的时候直接把这些当作已知来用吗?

安排

如果方案没什么太大的问题,我们准备完善下框图,开始编程工作。

感受

感觉我们组单做这一个模块,编程不是很复杂,主要是方案的确定,以及和其他模块之间的接口定义的准确,这就要我们理解好各个模块之间的关系,但是我们感觉和物理引擎租的关系有那么一点儿模糊,就像上面问题说的,所以有点担心会弄错策略的含义。

冰球项目日志3-yjw的更多相关文章

  1. 冰球项目日志2-yjw

    我们小组在12.31号进行了讨论,确定了基本的任务及分工,后面是元旦放假,大家没有做很多的东西,我也是把自己分工的部分方案想了下. 后面在1.3号,我们会再进行一次小组讨论,确定下最终的方案,然后进行 ...

  2. 冰球项目日志4-yjw

    小组讨论 我们组编程主要分成三个模块,各自负责自己的编程与测试. 杨静梧:确定击球算法编程.输入:冰球位置,速度大小方向:输出:撞击时冰球中心位置. 曹迦勒:确定击球手速度,位置.输入:撞击时冰球中心 ...

  3. 冰球项目日志1-yjw

    第一次小组讨论结果 功能需求分析 通过已知输入:球位置速度,击球手位置速度.确定输出:击球手击球时速度,击球点位置,击球手轨迹. 功能分解 1 通过当前的球位置速度,判断是否会进入我方球门,以判断是否 ...

  4. 学习Coding-iOS开源项目日志(五)

    继续,接着前面第四篇<学习Coding-iOS开源项目日志(四)>讲解Coding-iOS开源项目. 前 言:作为初级程序员,想要提高自己的水平,其中一个有效的学习方法就是学习别人好的项目 ...

  5. 学习Coding-iOS开源项目日志(一)

    前言:作为初级程序员,想要提高自己的水平,其中一个有效的学习方法就是学习别人好的项目.本篇开始会陆续更新本人对github上开源的一个很不错的项目的一点点学习积累.也就是,探究着别人写的源码,我学到了 ...

  6. 学习Coding-iOS开源项目日志(三)

    继续前两篇,接着本第三篇<学习Coding-iOS开源项目日志(三)>讲解Coding-iOS开源项目. 前 言:作为初级程序员,想要提高自己的水平,其中一个有效的学习方法就是学习别人好的 ...

  7. 学习Coding-iOS开源项目日志(二)

    继续前篇:<学习Coding-iOS开源项目日志(一)>,接着本第二篇<学习Coding-iOS开源项目日志(二)>讲解Coding-iOS开源项目. 前言:作为初级程序员,想 ...

  8. 采用Spring AOP+Log4j记录项目日志

    转载请注明出处:http://www.cnblogs.com/Joanna-Yan/p/6567672.html 项目日志记录是项目开发.运营必不可少的内容,有了它可以对系统有整体的把控,出现任何问题 ...

  9. jt项目日志查询流程

    jt项目日志查询流程

随机推荐

  1. java compiler level does not match the version of the installed java project facet

    Java compiler level does not match the version of the installed java project facet错误的解决 因工作的关系,Eclip ...

  2. .NET开发者必备的工具箱

    本文作者Spencer是一名专注于ASP.NET和C#的程序员,他列举了平时工作.在家所使用的大部分开发工具,其中大部分工具都是集中于开发,当然也有一些其它用途的,比如图片处理.文件压缩等. 如果你是 ...

  3. JPA in Spring

    JPA(Java Persistence API):Sun官方提出的Java持久化规范,定义了对象-关系映射(ORM)以及实体对象持久化的标准接口.Sun引入JPA出于两个原因:一.简化现有Java ...

  4. phpcms V9 栏目管理

    关于phpcms V9框架系统后台管理之栏目管理,请参见下文的源码分析(添加栏目和修改栏目): 参照添加栏目的界面图示,便于对源代码的理解: <?php // 文件路径:phpcms/modul ...

  5. asp.net页面生命周期请求管道19个事件

    HttpContext: ecb→ HttpWorkerRequest→HttpContext HttpApplicationFactory.获取了HttpApplication实例之后. (1)Be ...

  6. C# ASP.NET 读取EXCEL 单元格 读取 空值 不显示

    跟大家分享一下,[摘自]:http://blog.csdn.net/li185416672/article/details/8213729 读取excel时,某些单元格为空值 原来如此: 当我们用ol ...

  7. bzoj 1079 着色方案

    题目: 有n个木块排成一行,从左到右依次编号为1~n.你有k种颜色的油漆,其 中第i 种颜色的油漆足够涂ci 个木块.所有油漆刚好足够涂满所有木块,即c1+c2+-+ck=n.相邻两个木块涂相同色显得 ...

  8. easyui DataGrid 工具类之 util js

    var jq;                var tab;                var tabsIndex;                                /**     ...

  9. [LeetCode_5] Longest Palindromic Substring

    LeetCode: 5. Longest Palindromic Substring class Solution { public: //动态规划算法 string longestPalindrom ...

  10. Android first --- 单元测试框架junit

    #单元测试junit* 定义一个类继承AndroidTestCase,在类中定义方法,即可测试该方法 * 在指定指令集时,targetPackage指定你要测试的应用的包名 <instrumen ...