小组讨论

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

击球策略方案

方案分析



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

策略假定

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. Ansible 学习笔记

    最近因为需要管理很多台机器,而这些机器又需要频繁重新安装,实在受不了Puppet需要在每个客户机上都安装一遍,于是转头开始学些Ansible.根据这段时间的使用,这个确实是神器,唯一的感觉就是相见恨晚 ...

  2. (转)sl简单自定义win窗体控件

    sl简单自定义win窗体控件      相信大家接触过不少win窗体控件ChildWin子窗口就的sl自带的一个  而且网上也有很多类似的控件,而今天我和大家分享下自己制作个win窗体控件,希望对初学 ...

  3. .Net发出图片Request请求

    Stream reader = null; //可能是外部链接 if (imgUrl.ToLower().StartsWith("http://")) { var request ...

  4. java 线程 障碍器

    package de.bvb; import java.util.concurrent.CyclicBarrier; import java.util.concurrent.TimeUnit; /** ...

  5. Kerberos

    一.Kerberos Concept Kerberos是一种网络认证协议,其设计目标是通过密钥系统为客户机/服务器应用程序提供强大的认证服务,为通信双方提供双向身份认证. Kerberos关键术语: ...

  6. 数据库为什么要用B+树结构--MySQL索引结构的实现

    原理: http://blog.csdn.net/cangchen/article/details/44818485 http://blog.csdn.net/kennyrose/article/de ...

  7. Mvc 模块化开发

    在Mvc中,标准的模块化开发方式是使用Areas,每一个Area都可以注册自己的路由,使用自己的控件器与视图.但是在具体使用上它有如下两个限制 1.必须把视图文件放到主项目的Areas文件夹下才能生效 ...

  8. 面试题HTML +CSS

    HTML+CSS部分1.行内元素和块级元素?img算什么?行内元素怎么转化为块级元素?行内元素:和有他元素都在一行上,高度.行高及外边距和内边距都不可改变,文字图片的宽度不可改变,只能容纳文本或者其他 ...

  9. Scala学习资源

    Scala学习资源: Scala官方网站:http://www.scala-lang.org/ Scala github:https://github.com/scala/scala Twitter ...

  10. C# 正则表达式小坑 -- not enough

    今天遇到了一个奇怪的报错: 相关的代码是这样的: Regex regex = new Regex("(?<=wwwroot\\).*?$"); 然后把这段正则复制到任何正则测 ...