0

我已经创建了一个带有复合体作为底盘的子弹车,复合体由两个车身组成,一个底盘和一个炮塔。

我可以像这样获得炮塔变换和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);

我正在尝试从此矩阵中获取炮塔前向/方向向量。我需要这个,以便我将相机固定到炮塔的位置和方向。

我试过的是这样的:

btVector3 turretForwardVector = btVector3(turretMatrix[2], turretMatrix[6], turretMatrix[9]);

但这并没有给我正确的向量。

我到底要在哪里寻找这个矩阵中的向量?

4

1 回答 1

1

你的想法是对的。仅提取行或列向量就足够了。现在,在 OpenGL 矩阵表示法中,您正在提取 Z 行。我建议你试试这个专栏,即turretMatrix[0x8 … 0xb]

于 2013-11-18T12:21:30.123 回答