试着把b的质量合并

2024-04-23 06:16:34 发布

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

我在尝试将质量纳入我的计划时遇到了困难(特别是篮球的质量)。在

首先用重力来确定球的速度。当我用重力运行我的程序时,它运行得很好,没有问题。在

然而,当我尝试合并球的质量时,它完全没有击中篮圈(当然,我想这是可以预料的)。我只是不确定我是怎么用我的方程式的。如果我走对了,这里有人能清理一下吗?在

rim = ring(pos= vector(-0.6,-0.7,0), radius = 0.46, axis= vector(0,1,0))

basketball = sphere(pos= vector(-4.9,-2,0), radius = 0.12, color = color.orange)
basketball.velocity = vector(4.53, 6.01, 0)

g = -9.8
timeStep = 0.005
basketball.mass = 0.623 #got this from the internet, in kg


for x in arange(0, 3, 0.005):
    basketball.velocity.y = basketball.velocity.y + (g/basketball.mass)*timeStep
    basketball.pos = basketball.pos+basketball.velocity*timeStep
    rate(100)

不要在意边缘的位置,它的位置不是到处都是0的原因。我想我真正想问的是,如果球的速度是正确的,那么球的质量是否正确地包含在程序中。如果没有,我可以采取哪些措施让它正常工作?在


Tags: inpos程序质量速度mass计划重力
3条回答

你的速度单位不一致

克:米/(秒2)
米:公斤

(g/basketball.mass)*timeStep 

这将使单位:m/(kg.s)(不一致)

你可能需要研究运动方程

v=u+at

在哪里 v=最终速度
u=初始速度
a=加速度,在你的情况下,它是g
t=施加恒定力的时间,因此在这段时间内保持g

如果你在为你的程序建立物理模型,你需要更清楚地考虑你希望球的质量如何影响运动。简单地把质量作为运动的一个因子并不能准确地描述物理学,因为(正如DSM在你的问题下的评论中指出的那样)质量与运动无关。你可以考虑一些其他的东西,比如动量或者动能,但是我不确定这是否是你想要包含的那种复杂性。在

编辑
一些建议-不要马上直接编写你的应用程序,先考虑你想如何建立物理模型。一旦你弄清楚了,你就可以开始编码了。在

编辑2(编辑3-更正最后一个公式)
如果你把初始速度指定为vector(4.53, 6.01, 0),那么你可以通过计算动能来考虑质量变化对它的影响。假设你总是用固定能量发射球。因此:

E = 0.5 * m * v^2:
2E/m = v^2

这意味着v与1/m^0.5或{}成正比。因此,新质量的新发射速度V将为:

^{pr2}$

用一个例子来说明:将质量增加4倍于初始发射速度将导致初始发射速度是先前发射速度的一半。在

篮球的质量已经包含在常数9.8中。这是基础物理:

F = ma

所以要解决

^{pr2}$

引力由F = G m1 * m2 / r**2算出,其中G是引力常数。在

如果m1是地球的质量,m2是篮球的质量,那么a = G * m1 * m2 / r**2 / m2-也就是说,m2抵消了,所以a = G * m1 * r**2,这意味着对于m2的所有日常值,a是相同的!(地球向篮球方向的加速度也很小,但这个术语通常被忽略了。)

G = 6.67300 * 10**-11 (gravitational constant)
m1 = 5.9736 * 10**24 (mass of earth in kg)
r = 6.371 * 10**6 (radius of earth in meters)

代入G * m1 / r**2得到:

^{4}$

量化宽松

相关问题 更多 >