小组讨论

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

击球策略方案

方案分析



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

策略假定

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. 当display=none时,元素和子元素高度为0的解决办法

    在前端中为了某种需要,我们需要获取display=none的元素或者子元素的实际高度来进行某些处理,然而html对display=none的元素和子元素是不进行渲染的,如果我们没有规定这些元素的高度那 ...

  2. Database cannot be started in this edition of SQL Server" error when restoring a Microsoft Dynamics CRM database

    处理办法:http://support.microsoft.com/kb/2567984

  3. Steve Loughran:Why not raid 0,its about time and snowflakes!!!

    与RAID-0阵列的同组管理相比,Hadoop更喜欢一组单独磁盘.在Hadoop集群中,读取速度是最能体现性能的重要指标.在Steve Loughran文章中,尤其强调了这一点,他还指出,由于驱动器速 ...

  4. WebSphere MQ Explorer的sqlserver的jdbc

    一.IBM WebSphere MQ7.0的jdbc支持数据库有: DB2 Informix Informix_With_Date_Format Microsoft_SQL_Server Oracle ...

  5. Redmine插件

    1.redmine_customize_core_fields可以对自带字段进行设置,看起来很不错,2016年6月23日上线,安装失败, 看来测试不完整.redmine_issue_field_vis ...

  6. 让我轻轻的告诉你AliSQLselect语句中in多少个合适

    在以往的分享中,不止一次被开发问: 在MySQL的官方手册上有这么一句话: the optimizer can estimate the row count for each range using ...

  7. Java8闭包

    闭包在很多语言中都存在,例如C++,C#.闭包允许我们创建函数指针,并把它们作为参数传递,Java编程语言提供了接口的概念,接口中可以定义抽象方法,接口定义了API,并希望用户或者供应商来实现这些方法 ...

  8. Cenots7编译Opencv3.1错误:下载ippicv,解决方案

    在centos7上安装Opencv的时候,停在了下载ippicv的地方,一直都下载不下来. ippicv是一个并行计算库,其实可以不用的. 如果不想用这个并行计算库,在做Cmake的时候用参数关闭即可 ...

  9. Error: Bootstrap's JavaScript requires jQuery错误

    引入bootstrap时会出现的问题:boostrap下拉菜单无效,浏览器报Uncaught Error: Bootstrap's JavaScript requires jQuery错误, 解决办法 ...

  10. 手机响应式js轮播基础

    onmousedown --->ontuchstart onmousemove --->ontouchmove onmouseup --->ontouchend ontuchstar ...