-
카테고리
-
세부 분야
게임 프로그래밍
-
해결 여부
미해결
z축 회전행렬에서 요소 m12,m21과 -sin θ 와 sinθ의 위치 질문드립니다
21.06.13 00:17 작성 조회수 179
0
안녕하세요 루키스님 회전행렬의 값에 대해 질문드립니다.
z축회전변환 행렬을 구할때 X= xcosθ -ysinθ이며 Y= xsinθ + ycosθ 라고 하셨습니다. 그렇다면 m12 = sinθ이며 m21= -sinθ여야하는게 아닌가요? 찾아봤을때도 어디서는 그렇게 나오고 다른곳은 루키스님이 말씀하신것처럼 나와 헷갈려 어떤 차이가 있는지 질문드립니다. 고맙습니다.
[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part2: 게임 수학과 DirectX12
Scale, Rotation, Translation 변환 행렬
강의실 바로가기
답변을 작성해보세요.
0
baljang
2023.12.27
https://learn.microsoft.com/en-us/windows/win32/direct3d9/transforms
DirectX9설명을 봤을 때 rome님 말씀대로 행렬을 만들고 있었습니다.
DirectX9 에서는 좌표 벡터를 행 벡터로 간주하고, 변환 행렬을 강의처럼 오른쪽에 곱하고 있는데
DirectX11로 오면서 좌표 벡터를 열 벡터로 간주하고, 변환 행렬을 왼쪽에서 곱하고 있는 듯 합니다.
0
0
한장석
2021.06.17
회전행렬은 방향 코사인 행렬을 계산하여 구해집니다.
x'1축과 x1축과의 사이각을 (x1', x1) 이라 하고, 일반화 해서 xi'축과 xj 축 사이의 각을 (xi', xj) 라 해봅시다.
그렇게 되면 3차원의 경우 (x1', x2', x3') 과 (x1, x2, x3)의 총 9가지의 관계를 구할수 있습니다.
그래서 일반적인 3차원 회전행렬 L(람다)를 구할때 아래 처럼 구하게 됩니다.
l11 = cos(x1', x1);
l12 = cos(x1', x2);
l13 = cos(x1', x3);
l21 = cos(x2', x1);
l22 = cos(x2', x2);
l23 = cos(x2', x3);
l31 = cos(x3', x1);
l32 = cos(x3', x2);
l33 = cos(x3', x3);
회전 행렬 람다는
(l11, l12, l13)
(l21, l22, l23)
(l31, l32, l33)
가 됩니다.
해당 관계의 특수 예들이 X축 회전행렬, Y축 회전 행렬, Z축 회전 행렬 등으로 표현하면 강의에 나온것처럼 됩니다.
답변 3