如何从转换矩阵中获得前向,右向和向上向量?
我想以这些向量为基础,向不同方向的刚体施加力。
btTransform Trans = _RigidBody->getWorldTransform();
btVector3 Forward; // ???
btVector3 Right; // ???
btVector3 Up; // ???
_RigidBody->activate(true);
//
// Move forward/backward
_RigidBody->applyCentralForce(Forward * 5);
_RigidBody->applyCentralForce(-Forward * 5);
//
// Jump
_RigidBody->applyCentralForce(Up * 5);
//
// Move left/right
_RigidBody->applyCentralForce(Right * 5);
_RigidBody->applyCentralForce(-Right * 5);
我也有一个GLM模型矩阵,它本质上是
glm::mat4
内的子弹变换矩阵的副本,我可以在这里代替使用并将结果矢量转换为子弹,但宁愿留在子弹头中进行整个部分的操作。 最佳答案
您应该始终明确地说出正在使用的库。我假设您使用this。operator()
为您提供变换后的矢量图像,因此我认为,以下内容可以满足您的要求:btVector3 Forward = Trans(btVector3{1,0,0});