회전 행렬의 정의
회전 행렬은 공간에서 벡터를 회전시키는 변환을 수학적으로 표현하는 행렬이다. 3차원 공간에서 회전은 주로 \mathbb{R}^3 공간을 대상으로 하며, 회전 행렬은 3x3 행렬로 나타낸다. 회전 행렬은 직교 행렬이며, 그 행렬식은 1이다. 즉, 회전 행렬 \mathbf{R}는 다음 조건을 만족한다:
여기서, \mathbf{R}^\top는 \mathbf{R}의 전치 행렬이며, \mathbf{I}는 단위 행렬이다.
2차원 공간에서의 회전 행렬
먼저 2차원에서의 회전 행렬을 살펴보자. \mathbb{R}^2 공간에서 점 (x, y)를 원점을 기준으로 반시계 방향으로 \theta 만큼 회전시키는 변환은 다음과 같은 행렬로 나타낸다:
이 회전 행렬은 2차원 벡터 \mathbf{v} = \begin{bmatrix} x \\ y \end{bmatrix}에 대해 다음과 같이 작용한다:
따라서, 회전된 벡터 \mathbf{v}' = \begin{bmatrix} x' \\ y' \end{bmatrix}는 다음과 같이 계산된다:
3차원 공간에서의 회전 행렬
3차원 공간에서 회전 행렬은 더 복잡하지만, 각 축을 기준으로 하는 회전 행렬을 세 가지로 나누어 설명할 수 있다. 각 축에 대한 회전 행렬은 다음과 같다:
1. x-축 회전
x-축을 기준으로 반시계 방향으로 \theta만큼 회전하는 3차원 회전 행렬은 다음과 같이 정의된다:
2. y-축 회전
y-축을 기준으로 \theta만큼 회전하는 회전 행렬은 다음과 같다:
3. z-축 회전
z-축을 기준으로 \theta만큼 회전하는 회전 행렬은 다음과 같다:
이 각각의 회전 행렬은 3차원 벡터 \mathbf{v} = \begin{bmatrix} x \\ y \\ z \end{bmatrix}에 대해 다음과 같이 적용된다:
이를 통해, 임의의 축에 대한 회전은 각 축에 대한 회전 행렬을 곱하는 방식으로 표현할 수 있다.
임의의 축에 대한 회전
임의의 축을 기준으로 회전하려면 회전축 벡터 \mathbf{u} = \begin{bmatrix} u_x \\ u_y \\ u_z \end{bmatrix}와 회전 각도 \theta를 정의할 수 있다. 이때, 임의의 축에 대한 회전 행렬은 Rodrigues' 회전 공식을 사용하여 구할 수 있다. Rodrigues' 공식에 따르면, 임의 축을 기준으로 한 회전 행렬 \mathbf{R}(\theta, \mathbf{u})는 다음과 같이 표현된다:
여기서 \mathbf{I}는 3x3 단위 행렬이고, \mathbf{K}는 축 벡터 \mathbf{u}의 외적 행렬(또는 스큐 대칭 행렬)로 정의된다:
Rodrigues' 공식의 유도
Rodrigues' 회전 공식은 회전 벡터의 기하학적 성질을 이용해 유도된다. 벡터 \mathbf{v}를 임의의 축 \mathbf{u} 주위로 \theta만큼 회전시키면, 다음과 같은 세 가지 성분으로 나눌 수 있다:
- \mathbf{v}_\parallel: 회전축 방향의 벡터 성분 (회전과 무관한 성분)
- \mathbf{v}_\perp: 회전축에 수직인 벡터 성분 (회전이 영향을 미치는 성분)
- 회전 후의 \mathbf{v}_\perp: 회전 후의 수직 성분
회전 후의 벡터 \mathbf{v}'는 다음과 같이 표현된다:
이 공식을 행렬 형태로 바꾸면 Rodrigues' 회전 공식을 얻게 된다.
회전 행렬의 성질
회전 행렬은 몇 가지 중요한 성질을 가진다:
- 역행렬: 회전 행렬 \mathbf{R}의 역행렬은 그 전치 행렬과 같다. 즉,
이는 회전이 거꾸로 적용될 때 원래 상태로 복원되는 대칭성을 나타낸다.
-
직교성: 회전 행렬은 직교 행렬이다. 즉, \mathbf{R}^\top \mathbf{R} = \mathbf{I}를 만족한다. 이는 회전이 벡터의 크기를 보존하고, 두 벡터 간의 내적 관계를 유지한다는 의미이다.
-
행렬식: 회전 행렬의 행렬식은 항상 1이다:
이는 회전 변환이 벡터의 방향을 유지하며, 부피 보존 변환임을 나타낸다.
회전 행렬의 응용
회전 행렬은 다양한 분야에서 응용된다. 특히, 로봇 공학, 컴퓨터 그래픽스, 항공우주공학, 물리학 등에서 물체의 회전 및 방향을 계산하는 데 중요한 역할을 한다. 예를 들어, 로봇 팔의 운동학을 계산하거나 3D 객체의 회전 애니메이션을 구현하는 데 사용된다.