加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c – 计算可以从墙壁反弹的球的未来位置

发布时间:2020-12-16 07:17:46 所属栏目:百科 来源:网络整理
导读:我正在尝试做一些未来预测,我想计算球应该在特定高度(y)的位置.球向上射击并且可以从比赛的两侧反弹.弹跳不会影响移动速度. 我当前的配置是左下角是(0,0),右下角是(10,0)没有上限高度. 码: void getPositionXAtHeight(float height,Vec2 pos,Vec2 vel,float
我正在尝试做一些未来预测,我想计算球应该在特定高度(y)的位置.球向上射击并且可以从比赛的两侧反弹.弹跳不会影响移动速度.

我当前的配置是左下角是(0,0),右下角是(10,0)没有上限高度.

码:

void getPositionXAtHeight(float height,Vec2 pos,Vec2 vel,float gravityForce = 9.8f,float gameWidth,float& positionX)
{
    float a = gravityForce / 2.0f;
    float b = vel.y;
    float c = pos.y - height;

    float t = (sqrtf((b * b) - (4.0f * a * c)) - b) / (2.0f * a);

    positionX = pos.x + (vel.x*t);
}

Idea

任何人都可以建议我的代码到目前为止是否正确以及我应该怎样处理墙反弹?
此外,我觉得我应该做一些错误检查,但我不确定我需要在哪里?

解决方法

目前尚不清楚引力的方向是什么,但假设它沿着y轴.然后,为了对称,如果它们超过10,你可以“包围”x值.如果你的方程导致x = 11,对于对称性,在反弹后,x = 9(10 – (11 – 10)). 同样,你可以对待“双反弹”等.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读