重力在旋风物理引擎
Gravity in the Cyclone Physics Engine
我正在基于Cyclone物理引擎http://procyclone.com在c++中构建一个2D物理引擎,我正试图弄清楚为什么代码使用重力矢量乘以质量来向对象添加力,
void psiclone::Gravity::addForce(Body* body, double seconds) {
body->addForce(gravity * body->mass);
}
不是body->addForce(gravity * seconds);
当然,代码确实提供了包含
的update()velocity.mX += acceleration.getX() * seconds;
但是两个物体受到重力的影响,即使它们有不同的质量,它们不应该同时撞击地面吗??
从物理学上,我们知道force = mass * acceleration
。为了计算加速度,他们只需要用force
除以mass
。他们只是坚持这些术语的物理定义。gravity * seconds
为velocity
感谢您的回复;经过进一步调查,我在更新函数(旋风的粒子::integrate())中缺少一行,将加速度矢量乘以身体的逆质量:
acceleration *= inverseMass;
velocity += acceleration * seconds;
position += velocity * seconds;
这使得两个质量不同的物体同时落到屏幕底部并被击中。
相关文章:
- 当使用带有VS2019或VSCode的虚幻引擎4.24.2时,我如何修复这些错误的Intellisense错误
- Unity在虚幻引擎4中的"Vector3.Slerp"等效C++?
- 如何创建从Maya(或类似程序)到虚幻引擎的自定义数据导出插件
- 在虚幻引擎中删除NXOpen对象时崩溃
- 引擎节点:未定义的符号:_ZTV6Config
- Agora.io 虚幻引擎插件构建错误
- <random>在实践中应该实际使用哪个随机数引擎? std::mt19937?
- 无法在 Arch Linux 中启动虚幻引擎 4
- 在虚幻引擎中触发C++ dll的事件
- 在 C/C++ 中加载 OpenSSL 自定义引擎
- 组件上的虚幻引擎可蓝图UFUNCTION会导致构建错误
- 使用Visual Studio在虚幻引擎中创建一个新的类c ++给了我太多的错误
- 提高基于组件的游戏引擎的效率
- 在C++中嵌入 Mozilla 的 JavaScript 引擎
- 如何在虚幻引擎4中将char*转换为TCHAR?
- 如何将外部代码包含在虚幻引擎4 C++项目中
- 如何使用虚幻引擎"filter"多播?
- 我可以在没有Xcode的情况下在Mac上使用带有C++的虚幻引擎吗?
- 虚幻引擎C++生成演员错误
- 重力在旋风物理引擎