我需要从方向向量(vForward)获取旋转矩阵,同时我还有vRight和vUp向量。所有这些向量都是单位向量。
我只需要获取旋转矩阵。
要在仅限于与地面平行的一个平面(xy平面)中获得旋转矩阵,我这样做: XMMATRIX xmResult;
Vec3f vFwd = pPlayer->VForward;
vFwd.z = 0;
vFwd.Normalize();
xmResult = XMMatrixSet( vFwd.y, -vFwd.x, 0, 0,
vFwd.x, vFwd.y, 0, 0,
0, 0, 1, 0,
0, 0, 0, 1);
上述代码只能获得绕Z轴旋转的旋转矩阵:
我希望获得绕所有轴旋转的代码。 这是我被迫使用的坐标系。我知道它很奇怪:
这是我在代码中如何使用我的矩阵:
XMStoreFloat3((XMFLOAT3*)&vStart, XMVector3Transform(XMLoadFloat3((XMFLOAT3*)&vStart), xmTransformation));
XMStoreFloat3((XMFLOAT3*)&vEnd, XMVector3Transform(XMLoadFloat3((XMFLOAT3*)&vEnd), xmTransformation));