Я пишу простое 3D-приложение с DirectX. Я новичок, но я думаю, что понимаю, как работает D3DX Rotation.
при создании функции обнаружения столкновений я замечаю, что мяч отскакивает в неправильном направлении. код должен изменить направление оси, заданное в векторе направления. Вместо этого это меняет 2 других:
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
Что я здесь не так делаю? Идея состоит в том, чтобы инвертировать ось, указанную в векторе направления.