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


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

    原程序的几个问题:

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

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

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

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

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

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

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

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

  • 相关阅读:
    SytemC on CentOS 5.3 64bit
    Fast Poisson Disk Sampling
    Geometry Imager Viewport Filter
    Dinornis – Rendering your Model in Mudbox by RenderMan Directly !
    Models of biological pattern formation
    OrthoLab
    如何编译ATILA GPU Emulator
    感受谷歌地图
    树状列表完成
    获取地图标记点经纬度
  • 原文地址:https://www.cnblogs.com/CXSheng/p/12697425.html
Copyright © 2020-2023  润新知