首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基本的Python弹跳球问题(以及可能的嵌套循环?)

基本的Python弹跳球问题(以及可能的嵌套循环?)
EN

Stack Overflow用户
提问于 2019-10-08 13:08:19
回答 1查看 775关注 0票数 1

我在这里尝试实现的是创建一个球落下并反弹回来的轨迹,运动的方程是y,每次球反弹时,v_0变成e*v_0,或者是以前的3/4。我从计算y(t)开始,没有反弹,让y变为负值,然后轨迹的负部分将被以反弹开始的新轨迹取代,其v_0将是之前的3/4,然后重复,直到没有负的y值。(我尝试了嵌套循环,但我还没有真正弄清楚如何使用,我们不需要使用嵌套循环,但我真的看不到其他方法)。最后,我希望使用函数下面的t_test生成一个包含球的所有y的数组。

代码语言:javascript
复制
def traj_y_bounce(t, v_0, y_0=0, e=0.75):    
    y = y_0 + v_0 * t - (1/2)*g*(t**2)
    return y
#    for i in range(len(y)):
#        while y[i] < 0:
#            y[i] == 
#    return y



#t_test = np.linspace(0,5,10)
#print(traj_y_bounce(t_test, 4))
EN

回答 1

Stack Overflow用户

发布于 2019-10-08 13:41:59

这是一个从高度h掉下来的球的简单模拟示例

代码语言:javascript
复制
def traj_y_bounce(tmax, v0, y0, e0=0.75):
    g = 9.9 # meters/s/s
    y = [y0] # heights over time

    dt = 0.01 # integrate in hundredths of a second

    v = v0
    t = 0
    while t <= tmax:
        if y[-1] <= 0 and v < 0:
            v = -e0*v   # reflect off ground
        v = v - g*dt    # integrate velocity
        y.append(y[-1] + v*dt)  # integrate position

        t = t + dt  # integrate time
    return y

y = traj_y_bounce(5, 0, 10)

%matplotlib notebook
import matplotlib.pyplot as plt
plt.plot(y, linewidth=4, label='height')
plot.show()

绘图

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58280477

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档