ODE默认所有物体都受重力影响,当我们不希望考虑重力时,须手动将重力影响消除,在ODE中是靠函数dBodySetGravityMode ( b, mode);实现,而DELTA3D并没有将这个函数封装起来,即默认所有物体都受重力影响,解决办法有三:
l 将重力设为0;
l 在我们自己的应用程序中include <ode/ode.h>,调用函数 dBodySetGravityMode()实现;
l 为平台通用化,在delta3d中实现,如下过程:
Dtcore中scene.h添加函数声明:
// Set the gravity mode 工业仿真添加。默认全部受重力影响,但mode为时取消重力影响
void SetGravityMode(dBodyID b, int mode);
scene.cpp添加函数定义:
// 工业仿真添加
void Scene::SetGravityMode(dBodyID b, int mode)
{
dBodySetGravityMode ( b, mode);
}
将decore重新编译,即可!
本文介绍如何在ODE(开放动力学引擎)中取消物体受到的重力影响。提供了三种解决方案,包括直接设置重力为0、在应用程序中调用特定函数以及在Delta3D中增加函数支持的方法。
742

被折叠的 条评论
为什么被折叠?



