1

コンパウンドをシャシーとした弾丸車両を作成しましたが、コンパウンドはシャシーと砲塔の2体で構成されています。

次のようにタレット変換と opengl マトリックスを取得できます。

// get chassis and turret transforms
btTransform chassisTransform = m_vehicle->getChassisWorldTransform();
btTransform turretTransform = compound->getChildTransform(1);
// multiply transforms to get updated turret transform
turretTransform *= chassisTransform;

// get turret matrix
btScalar turretMatrix[16];
turretTransform.getOpenGLMatrix(turretMatrix);

turretTransform は、btCollisionShape オブジェクト (turretShape) の変換です。

このタレットを Y 軸を中心に回転させようとしています。

私はこれを試しました:

turretTransform.setRotation(btQuaternion(btVector3(0, 1, 0), angle));

angle はフロートですが、何も起こりません。

私は間違いなく何かが欠けていますが、これらのローテーションがどのように機能するかを完全には理解していません。

4

1 に答える 1