2

我正在使用 Open Dynamics Engine 用 C++ 编写游戏。当我运行它时,我收到以下错误:

ODE 消息 2:惯性必须在 dMassCheck() 文件 ../../../../../ode/src/mass.cpp 第 53 行中为正定

ODE 消息 2:惯性必须在 dMassCheck() 文件 ../../../../../ode/src/mass.cpp 第 53 行中为正定

ODE 内部错误 1:dBodySetMass() [../../../../../ode/src/ode.cpp] 中的断言“dMassCheck(mass)”失败

我有这个代码:

void Physics::addObject(dBodyID *body, dMass *massPtr, dReal mass) {
    *body = dBodyCreate(world);
    dMassSetSphereTotal(massPtr, 2.0f, 1.0f);
    dBodySetMass(*body, massPtr);
    dBodySetPosition(*body, 0.0, 0.0, 0.0);
}

我打电话给它physics->addObject(&orb.body, &orb.mass, 1.0);

4

1 回答 1

0

massPtr结构包含一个惯性张量。这个张量(在这种情况下只是一个矩阵)必须是正定的。这就是我们可以说的,直到你告诉我们你从哪里得到的massPtr

于 2011-09-02T14:27:33.840 回答