0
C++에서 정적 RotationX()
RotationY()
및 RotationZ()
메쏘드가있는 Matrix 클래스를 작성했습니다. 벡터에 곱하기 전에 행렬을 곱하면 벡터에 행렬을 개별적으로 곱한 것보다 다른 결과를 얻습니다.Affine 회전 행렬
이 코드
Vec4 result1 { 1, 1, 1, 1 };
result1 = Matrix::RotationX(ToRadians(-90)) * result1;
result1 = Matrix::RotationY(ToRadians(90)) * result1;
result1 = Matrix::RotationZ(ToRadians(90)) * result1;
// result1 => { -1, -1, -1, 1 }
이 코드
Vec4 result2 { 1, 1, 1, 1 };
auto rotation = Matrix::RotationX(ToRadians(-90)) *
Matrix::RotationY(ToRadians(90)) *
Matrix::RotationZ(ToRadians(90));
result2 = rotation * result2;
// result2 => { 1, 1, -1, 1 }
여기에 문제가 무엇입니까 다른 결과를 얻을 수? 로테이션 함수 구현을 제공 할 수 있지만 코드를 게시하기 전에 이것이 아핀 변환의 개념적 문제가 아니 었는지 확인하고 싶습니다.
내 행렬의 순서가 다르다는 것을 깨달았습니다. :) 감사합니다. – jefftime