• 【20200414】ZumaV3-算法与数据结构课程作业


    ——别想了,程序文件在我电脑里,不会给各位抄答案的。

    原程序的几个问题:

    1.球速的计算方式很奇怪,会导致不同角度出射的碰撞球速度不一致——解决方法是给碰撞球加速度xy分量的参数即可;

    2.球要碰撞后运动,直接自己写一个碰撞函数来计算方向即可。

    若假设等质量弹性对心正碰,这函数30s你就能写完;

    若假设弹性非对心碰撞,可以知道速度交换,但是仅限于球心连线上的速度分量,由于我使用xy速度分量参数,所以分别求出主动球的球速的每个分量会有多少传递给被动球即可。不过是两个三角函数相乘的事儿~

    ……我终于发现为什么我的碰撞算法逻辑正确却看起来是错误结果——由于球的运动方式特殊(坐标是分立的),使得前一时刻尚未判定碰撞的两个球,下一时刻的相对位置就可能发生错位,导致碰撞算法算出来的角度错误,然后球就乱飞……

    解决方法有以下几个方向:

    1)加大碰撞判定范围,落实下来就是增大球的半径;

    2)加快刷新频率并同时减小步长,使得同样速度下检测次数增加,减小bug概率。

  • 相关阅读:
    Mysql-存储过程-批量增加数据
    VIM
    查看Chrome浏览器同步数据状态工具
    Tomcat运行配置
    mysql的engine不同,导致事物回滚失败的问题
    git在MAC,Linux的terminator(命令行)下自动显示当前分支
    SED单行脚本快速参考(Unix 流编辑器)
    awk中使用shell的环境变量
    Grep Sed Awk
    shred_linux_unix
  • 原文地址:https://www.cnblogs.com/CXSheng/p/12697425.html
Copyright © 2020-2023  润新知