오일러 각과 회전 (Euler angle and rotation)

오일러 각을 이용한 회전

2019년 03월 30일

2차원 평면에서의 회전

2차원 평면 좌표에서 단위원 위의 한 점 (x,y)(x, y) 가 시계 반대방향으로 θ\theta 만큼 회전해 (x,y)(x', y') 가 될 때 이를 삼각함수를 이용해 표현할 수 있습니다.

아래 그림은 점 (x,y)(x, y), (x,y)(x', y') 와 각도 θ\theta 를 표현한 것입니다.

(x,y)(x', y') 을 표현하는 식을 찾기 위해 아래와 같이 보조선을 그어 보겠습니다.

그림을 보면 점 (x,y)(x, y) 에 대해 xx 축에 수선의 발을 내리는 보조선과 수선의 발과 원점을 잇는 보조선이 있습니다. 이들 보조선과 점 (x,y)(x, y) 를 이용해 직각삼각형을 만들 수 있고 이를 θ\theta 만큼 회전한 삼각형도 그릴 수 있습니다. 이 때 점 (x,y)(x, y) 와 원점을 잇는 직선이 회전한 각도는 보조선이 회전한 각도와 같습니다.

다음으로 직각삼각형 안에 작은 직각삼각형을 그리는 새로운 보조선을 그려 보겠습니다.

회전된 직각삼각형 안의 작은 직각삼각형에 대해 같은 크기의 원점을 포함한 직각삼각형을 그릴 수 있습니다. 이 때 두 작은 직각삼각형의 빗변은 평행하므로 회전된 보조선과 원점을 포함한 직각삼각형의 빗변이 직각을 이룹니다. 이 사실을 이용해 작은 직각삼각형의 각도를 구할 수 있습니다.

그림에서 작은 직각삼각형의 두 모서리 중 큰 각은 18090θ=90θ180^\circ - 90^\circ - \theta = 90^\circ - \theta 이고 나머지 한 모서리의 각은 θ\theta 입니다. 작은 직각삼각형의 빗변의 길이가 yy 임을 이용해 아래 그림과 같이 xx' 를 구할 수 있습니다.

yy' 역시 회전한 보조선과 작은 직각삼각형을 이용해 찾을 수 있습니다.

x=xcosθysinθx' = x cos\theta - y sin\theta, y=xsinθ+ycosθy' = x sin\theta + y cos\theta 를 행렬-벡터 곱셈으로 다음과 같이 쓸 수 있습니다.

[cosθsinθsinθcosθ][xy]=[xcosθysinθxsinθ+ycosθ]\begin{bmatrix} cos\theta & -sin\theta \\ sin\theta & cos\theta \end{bmatrix} \begin{bmatrix} x \\ y \end{bmatrix} = \begin{bmatrix} x cos\theta - y sin\theta \\ x sin\theta + y cos\theta \end{bmatrix}





오일러 각

오일러는 복소수를 사용해 편각을 표현하는 다음과 같은 공식을 발견했습니다.

eθi=cosθ+i sinθe^{\theta i} = cos \theta + i\text{ }sin\theta

이를 아래 그림과 같이 복소필드상에 그려볼 수 있습니다.

복소필드상의 원점 중심의 원 위의 한 점 reϕire^{\phi i}θ\theta 만큼 회전시키는 것은 아래 식과 같이 쓸 수 있습니다. 여기서 rr은 복소필드상의 원점을 중심으로 한 원의 반지름입니다.

reϕieθire^{\phi i} \cdot e^{\theta i}

예를 들어 단위원위의 점 z=eπ6iz = e^{\frac{\pi}{6} i}π3\frac{\pi}{3} 만큼 회전시키기 위해서는 eπ3ie^{\frac{\pi}{3} i}zz 에 곱해줍니다.

zeπ3i=eπ6i+π3i=eπ2i=cosπ2+i sinπ2=ize^{\frac{\pi}{3} i} = e^{\frac{\pi}{6} i + \frac{\pi}{3} i} = e^{\frac{\pi}{2} i} = cos\frac{\pi}{2} + i \text{ }sin\frac{\pi}{2} = i

이는 실수 평면상의 점 (cosπ6,sinπ6)(cos\frac{\pi}{6}, sin\frac{\pi}{6})π3\frac{\pi}{3} 만큼 회전시켜 (0,1)(0, 1)을 얻는 것과 같습니다.



이렇게 유용한 오일러 각은 여러 방법으로 증명할 수 있습니다. 이 글에서는 미적분을 이용해 증명해 보겠습니다.

z=cosθ+i sinθz = cos\theta + i \text{ }sin\theta

zzθ\theta 에 대해 미분합니다.

dzdθ=sinθ+i cosθ=i(i sinθ+cosθ)=zi\begin{aligned} \frac{dz}{d\theta} & = -sin\theta + i \text{ } cos\theta \\ & = i(i \text{ } sin\theta + cos\theta) \\ & = zi \end{aligned}

dzdθ=zi\frac{dz}{d\theta} = zi1zdzdθ=i\frac{1}{z}\frac{dz}{d\theta} = i 로 변형가능합니다. 변형한 식을 적분해보겠습니다.

1zdz=idθln z=θiz=eθi\begin{aligned} \int \frac{1}{z} dz &= \int i d\theta \\ ln \text{ }z &= \theta i \\ \therefore z &= e^{\theta i} \end{aligned}





회전 행렬

앞서 살펴 봤던 2차원 회전 행렬 [cosθsinθsinθcosθ]\begin{bmatrix} cos\theta & -sin\theta \\ sin\theta & cos\theta \end{bmatrix} 을 3차원에 적용해 보겠습니다. 2차원에서는 원점에 대해 회전하는 변환이었다면 3차원에서는 축을 기준으로 회전합니다. xx, yy, zz 축에 대한 각각의 회전은 아래 그림과 같이 그려볼 수 있습니다.

zz 축에 대한 회전은 1사분면만을 기준으로 할 때 xx 축에서 yy 축 방향으로 회전합니다. xx 축에 대한 회전은 yy 축에서 zz 축 방향으로 회전합니다. yy 축에 대한 회전은 zz 축에서 xx 축 방향으로 회전합니다. 이해를 돕기 위해 xx, yy, zz 를 각각의 알파벳 순서로 생각한다면 yy 축에 대한 회전만이 그 순서가 반대입니다. 3차원 회전 행렬의 행의 순서를 구성하는데 이를 고려해야 합니다. 아래는 xx 축, yy 축, zz 축에 대한 각각의 3차원 회전 행렬입니다.

[1000cosθsinθ0sinθcosθ][cosθ0sinθ010sinθ0cosθ][cosθsinθ0sinθcosθ0001]\begin{bmatrix} 1 & 0 & 0 \\ 0 & cos\theta & -sin\theta \\ 0 & sin\theta & cos\theta \end{bmatrix}\begin{bmatrix} cos\theta & 0 & sin\theta \\ 0 & 1 & 0 \\ -sin\theta & 0 & cos\theta \end{bmatrix}\begin{bmatrix} cos\theta & -sin\theta & 0 \\ sin\theta & cos\theta & 0 \\ 0 & 0 & 1 \end{bmatrix}