2

OpenDynamicsEngineを使用してC++でゲームを書いています。実行すると、次のエラーが発生します。

ODEメッセージ2:慣性はdMassCheck()ファイルで正定値でなければなりません../../../../../ode/src/mass.cpp53行目

ODEメッセージ2:慣性はdMassCheck()ファイルで正定値でなければなりません../../../../../ode/src/mass.cpp53行目

ODE内部エラー1:アサーション "dMassCheck(mass)"がdBodySetMass()で失敗しました[../../../../../ode/src/ode.cpp]

私はこのコードを持っています:

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 に答える