弹跳球的附加恢复系数

2024-03-29 06:30:49 发布

您现在位置:Python中文网/ 问答频道 /正文

我有以下相关代码,用于模拟箱子内壁球的轨迹:

while t<20:

    if ball.pos.x>wallR.pos.x-ball.radius:
        ball.momentum.x=-1*ball.momentum.x
        varr.axis.x=-varr.axis.x

    if ball.pos.x<wallL.pos.x+ball.radius:
        ball.momentum.x=-1*ball.momentum.x
        varr.axis.x=-varr.axis.x

    if ball.pos.y>wallT.pos.y-ball.radius:
        ball.momentum.y=-1*ball.momentum.y
        varr.axis.y=-varr.axis.y

    if ball.pos.y<wallBt.pos.y+ball.radius:
        ball.momentum.y=-1*ball.momentum.y
        varr.axis.y=-varr.axis.y

    if ball.pos.z<wallB.pos.z+ball.radius:
        ball.momentum.z=-1*ball.momentum.z
        varr.axis.z=-varr.axis.z

    if ball.pos.z>wallF.pos.z-ball.radius:
        ball.momentum.z=-1*ball.momentum.z
        varr.axis.z=-varr.axis.z

    ball.momentum = ball.momentum + g*mass*dt
    ball.pos = ball.pos + ((ball.momentum)/mass)*dt
    ball.trail.append(pos=ball.pos)
    varr.pos = varr.pos + ((ball.momentum)/mass)*dt
    varr.axis = vscale*ball.momentum
    t=t+dt

varr就是附着在球上的动量向量

我想知道我需要做些什么来实现代码中的恢复系数,以便反弹看起来更真实一些。我不知道在while循环中在哪里实现它。我的物理老师基本上说,“把这个加入你的代码中,”我有点迷路了

编辑:我了解到,要实现恢复系数,我需要在动量从墙上反弹时按绝对值小于1的因子缩放动量,但我还需要在位置更新函数中缩放动量。有人愿意解释我为什么要这么做吗


Tags: 代码posifdt动量masswhileaxis