다음 문제가 있습니다. 나는 동시에 3 축을 중심으로 3D 모델을 회전하려고합니다. 의미 나는 키보드의 버튼을 눌러 X 축, Y 축, X 축 등을 중심으로 모델을 회전시키고 자한다.DirectX 11.2 C++에서 모든 3 (X, Y, Z) 축을 중심으로 모델 회전
void Rotate(float radians_x, float radians_y, float radians_z)
{
DirectX::XMStoreFloat4x4(&_transfer.world, DirectX::XMMatrixTranspose(DirectX::XMMatrixRotationZ(radians_z)));
DirectX::XMStoreFloat4x4(&_transfer.world, DirectX::XMMatrixTranspose(DirectX::XMMatrixRotationY(radians_y)));
DirectX::XMStoreFloat4x4(&_transfer.world, DirectX::XMMatrixTranspose(DirectX::XMMatrixRotationX(radians_x)));
}
마지막 회전이 수행됩니다 :이 같은 XMMatrixRotationX, XMMatrixRotationY 또는 XMMatrixRotationZ을 사용할 때 문제입니다. 코드에서 볼 수 있듯이 각 축을 중심으로 객체를 특정 각도 (실제로는 라디안)만큼 회전시킬 수 있어야합니다. XMMatrixRotationAxis 메서드가이 작업을 수행한다는 것을 알았지 만 하나의 각도 매개 변수 만 사용하고 각 축마다 다른 용도를 사용하려고합니다. 이 일을 어떻게 할 수 있는지 누구든지 나를 도울 수 있습니까?
또한 XMMatrixRotationAxis에 첫 번째 매개 변수로 보낼 내용을 알지 못합니다. 단지 축 벡터를 말합니다. 어떻게 코드에 접근했는지 알지 못합니다. 게시 된 코드에서 사용한 메소드는 축을 전송할 필요가 없습니다. 나는 이것이 왜 필요한지, 또는 어떻게해야하는지 이해하지 못한다.
도움을 주시면 감사하겠습니다.