오늘은 2차원 회전 행렬에 대해서 다루겠습니다.
먼저 회전 행렬에 대해서 먼저 보여드리겠습니다.
회전 행렬 R(θ)을 이용하여 P(x, y) 좌표를 회전시킨 좌표 P′(x′, y′)를 구하는 식을 보여드리겠습니다.
[사진 2]를 수행하면 P′의 좌표를 구할 수 있습니다.
여기서 회전 행렬과 P′의 좌표를 구하는 식이 어떻게 나왔는지 궁금해 찾아본 내용을 정리하겠습니다.
아래 블로그를 참고하면서 공부했습니다.
https://gaussian37.github.io/math-la-rotation_matrix/
우선 P(x, y)를 cos과 sin으로 변환하는 과정부터 보여드리겠습니다.
설명을 위해 반지름의 길이가 r인 원과 r을 빗변으로 가진 직각삼각형을 그렸습니다.
점 P의 좌표는 (x, y) 입니다.
r = √(x² + y²)
cosθ = x / r
sinθ = y / r
위의 식을 토대로 x, y를 다음과 같이 표현할 수 있습니다.
x = rcosθ
y = rsinθ
x와 y 좌표를 cos과 sin으로 변환했으니, 이젠 P 좌표를 회전시켜보겠습니다.
점 P를 A만큼 회전시켜서 점 P′ 위치로 이동했습니다.
즉, x와 y 좌표를 A만큼 회전시키면 P′(x′, y′)를 알 수 있습니다.
수식으로 표현해보겠습니다.
x = rcosθ
y = rsinθ
rcosθ를 A만큼 회전시키면 rcos(θ + A)가 됩니다.
rsinθ를 A만큼 회전시키면 rsin(θ + A)가 됩니다.
x′ = rcos(θ + A)
y′ = rsin(θ + A)
rcos(θ + A)와 rsin(θ + A)를 구하는 방법은 고등학교 때 배운 삼각 함수의 합차 공식을 이용하면 됩니다.
코사인은 코코사사, 사인은 사코코사로 기억하는 합차 공식을 이용해보겠습니다.
r = √(x² + y²)
x = rcosθ = √(x² + y²)cosθ
y = rsinθ = √(x² + y²)sinθ
x′ = rcos(θ + A)
y′ = rsin(θ + A)
x′ = rcos(θ + A)
= √(x² + y²) * cos(θ + A)
= √(x² + y²) * (cosθ * cosA - sinθ * sinA)
= √(x² + y²) * cosθ * cosA - √(x² + y²) * sinθ * sinA
= x * cosA - y * sinA
y′ = rsin(θ + A)
= √(x² + y²) * sin(θ + A)
= √(x² + y²) * (sinθ * cosA + cosθ * sinA)
= √(x² + y²) * sinθ * cosA + √(x² + y²) * cosθ * sinA
= y * cosA + x * sinA
즉, 아래의 식이 성립하는 것을 알 수 있습니다.
x′ = x * cosA - y * sinA
y′ = y * cosA + x * sinA
x′ = x * cosA - y * sinA
y′ = y * cosA + x * sinA
위의 식을 행렬 곱으로 나타내면 [사진 2]의 형태가 됩니다.
제가 공부한 부분을 정리한 내용이기 때문에 틀린 부분 있을 수 있습니다!!
혹시 틀린 부분이 있으면 알려주세요!!