강의

멘토링

커뮤니티

Cộng đồng Hỏi & Đáp của Inflearn

Hình ảnh hồ sơ của romilda5933
romilda5933

câu hỏi đã được viết

[Tuyển tập phát triển game MMORPG bằng C++ và Unreal] Phần 2: Toán học game và DirectX12

Ma trận biến đổi: Tỷ lệ, Xoay, Tịnh tiến

z축 회전행렬에서 요소 m12,m21과 -sin θ 와 sinθ의 위치 질문드립니다

Viết

·

438

0

안녕하세요 루키스님 회전행렬의 값에 대해 질문드립니다.

z축회전변환 행렬을 구할때 X= xcosθ -ysinθ이며 Y= xsinθ + ycosθ 라고 하셨습니다. 그렇다면 m12 = sinθ이며 m21= -sinθ여야하는게 아닌가요? 찾아봤을때도 어디서는 그렇게 나오고 다른곳은 루키스님이 말씀하신것처럼 나와 헷갈려 어떤 차이가 있는지 질문드립니다. 고맙습니다.

   

DirectX게임수학

Câu trả lời 3

0

https://learn.microsoft.com/en-us/windows/win32/direct3d9/transforms

DirectX9설명을 봤을 때 rome님 말씀대로 행렬을 만들고 있었습니다.
DirectX9 에서는 좌표 벡터를 행 벡터로 간주하고, 변환 행렬을 강의처럼 오른쪽에 곱하고 있는데
DirectX11로 오면서 좌표 벡터를 열 벡터로 간주하고, 변환 행렬을 왼쪽에서 곱하고 있는 듯 합니다.

0

아 오타였군요

0

회전행렬은 방향 코사인 행렬을 계산하여 구해집니다. 

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축 회전 행렬 등으로 표현하면 강의에 나온것처럼 됩니다.

Hình ảnh hồ sơ của romilda5933
romilda5933

câu hỏi đã được viết

Đặt câu hỏi