旋风物理引擎中的引力 我在C++中建立了一个基于旋风物理引擎的2D物理引擎,我试图找出为什么代码使用一个重力向量乘以质量来增加一个物体的力, void psiclone::Gravity::addForce(Body* body, double seconds) { body->addForce(gravity * body->mass); }
而不是旋风物理引擎中的引力 我在C++中建立了一个基于旋风物理引擎的2D物理引擎,我试图找出为什么代码使用一个重力向量乘以质量来增加一个物体的力, void psiclone::Gravity::addForce(Body* body, double seconds) { body->addForce(gravity * body->mass); },c++,C++,而不是 body->addForce(gravity * seconds); 当然,代码确实提供了一个update(),包括 velocity.mX += acceleration.getX() * seconds; 但是有两个物体受到重力的影响,即使它们有不同的质量,它们不应该同时撞击地面吗 从物理学上,我们知道力=质量*加速度。因此,为了计算加速度,他们只需将力除以质量。他们只是坚持这些术语的物理定义重力*秒将是速度谢谢您的回复;经过进一步调查,我的更新函数(cyclone的par
body->addForce(gravity * seconds);
当然,代码确实提供了一个update(),包括
velocity.mX += acceleration.getX() * seconds;
但是有两个物体受到重力的影响,即使它们有不同的质量,它们不应该同时撞击地面吗 从物理学上,我们知道
力=质量*加速度
。因此,为了计算加速度,他们只需将力
除以质量
。他们只是坚持这些术语的物理定义<代码>重力*秒将是速度
谢谢您的回复;经过进一步调查,我的更新函数(cyclone的particle::integrate())中缺少一行,该函数将加速度向量乘以物体的逆质量:
acceleration *= inverseMass;
velocity += acceleration * seconds;
position += velocity * seconds;
这使得两个不同质量的物体同时落在屏幕底部并击中屏幕。body->addForce(重力*秒)
在物理上是不正确的,你说你在增加一个力,但你在给它一个速度。