Direct 3D를 이용한 프로그래밍에서는 변환을 표현하기위해 4x4 행렬을 이용하며, 기본적인 방식은 다음과 같다.

 

4x4 행렬 X의 각 항목을 특정한 값으로 채운 다음, 1x4 행 백터 v의 열에 포인트의 좌표나 벡터를 넣는다. 

 

 

행렬 X는 변환에 따라 이동 행렬(Translation Matrix) , 회전 행렬(Rotation Matrix), 크기 변형 행렬(Scale Matrix)로 구분할 수 있다.

 

- 이동 행렬(Translation Matrix

이동 행렬(Translation Matrix)

 벡터 v를 위 그림과 같이 이동시킨다고 가정할 때, 다음과 같은 행렬과 곱하면 x축으로 y축으로 , z축으로 만큼 이동 시킬수 있다.

이동 행렬 T(p)

이동 벡터 p의 부호를 바꾸는 것으로 간단하게 역 행렬을 얻을수 있다.

이동 행렬의 역 행렬

 

- 회전 행렬(Rotation Matrix)

회전 행렬(Rotation Matrix)

 다음 행렬을 이용하면 각 축을 기준으로 시계방향으로 회전하는 행렬을 구성할 수 있다.

X축 회전 행렬
Y축 회전 행렬
Z축 회전 행렬

회전행렬 의 역 행렬은 전치 행렬 와 같다. 

- 크기 변환 행렬(Scale Matrix)

크기 변환 행렬(Scale Matrix)

  크기 변환 행렬 를 벡터와 곱셈을 하면 벡터의 크기를 p만큼 변환할 수 있다.

크기 변환 행렬 S

역행렬은 인자의 역수를 넣어 얻을 수 있다.

크기 변환 행렬의 역 행렬

 

-변환 행렬의 조합

 벡터 v에 대하여 이동을 위한 행렬 T, 회전을 위한 행렬 R, 크기 변환 행렬 S가 있을 경우, 최종적으로 구해지는 벡터 v'은 다음과 같다.

 

'DirectX9' 카테고리의 다른 글

VS2017에서 DirectX9 SDK 세팅하기  (0) 2021.06.02
평면(Plane)  (0) 2021.06.02
항등 행렬, 역 행렬, 행렬의 전치  (0) 2021.05.31
행렬(Matrix)  (0) 2021.05.31
벡터의 연산  (0) 2021.05.31

+ Recent posts