我正在使用directX 编写简单的3d 应用程序。我是新手,但我想我了解 D3DX Rotation 的工作原理。创建碰撞检测功能时,我注意到球弹向错误的方向。代码应该改变“方向”向量中给定的轴方向。相反,它改变了另外两个:
speed = D3DXVECTOR3(1.0f, 2.0f, 3.0f);
direction = D3DXVECTOR3(1.0f, 0.0f, 0.0f);
D3DXMATRIX temp;
D3DXMatrixRotationAxis(&temp, &direction, 3.14f);
D3DXVec3TransformCoord(&speed, &speed, &temp);
从断点开始,我知道速度从 1 、 2 、 3 变为:
- _D3DVECTOR {x=0.999999762 y=-2.00477481 z=-2.99681091 } _D3DVECTOR
我在这里做错了什么?这个想法是反转方向向量中指定的轴。