首页 > 解决方案 > 如何在 vpython 中实现两个球的重量?

问题描述

如何在 vpython 中实现两个球的重量?

我将把球放在空中并比较球的下落速度和它的重量。

我们如何实现这一点?如果有其他图书馆,请推荐。

标签: pythonvpython

解决方案


作为答案,我发布了一个关于如何使用 VPython 制作物理模型的广泛教程的链接,但我的答案被删除了,因为我必须提供该教程的链接。所以这里至少是一个落下和弹跳球的简单例子:

floor = box(pos=vec(0,-5,0), size=vec(10,0.2,10), texture=textures.wood)
ball = sphere(pos=vec(-5,5,0), radius=0.3, 
    make_trail=True, color=color.cyan, emissive=True)
L = local_light(pos=ball.pos, color=ball.color)
m = 1
g = 9.8
p = m*vec(2,0,0) # initial momentum of the ball
dt = 0.01
t = 0
gr = gcurve(color=color.red)
while ball.pos.x < 12:
    rate(100)
    F = vec(0,-m*g,0)
    p = p + F*dt
    ball.pos = ball.pos + (p/m)*dt
    L.pos = ball.pos
    if ball.pos.y < floor.pos.y + ball.radius:
        p.y = -p.y
    t += dt
    gr.plot(t,p.y/m)

推荐阅读