Vector 에 대해서 배우는 중, 여러 좌표계에 관해서 정리해야 될 필요성을 느껴서 글을 작성한다.
필자는 벡터를 공부하면서 아래 강의를 참조 하였다.
양성일 교수님의 벡터 강의가 무료로 제공되므로 참조하길 바란다.
해당 포스팅에는 너무 딱딱한 표현은 지양하고, 쉽게 쉽게 설명하면서
실무에 필요한 내용만 설명할 생각이다.
어디까지나 Tutorial 개념의 포스팅이기에,
공부가 더 필요하다면
EBS, K-MOOC, KOCW 등의 무료 강의에서
훌륭한 교수님들이 많은 강의를 작성 해 놓았으니 그것을 참고하길 바란다.
0. 벡터란 무엇이며, 왜 사용하는가?
백터란 '크기와 방향을 가진 물리량을 표기하는 방법' 이다.
여기서 우리는 좌표계에 대해서만 언급할 것이므로 '위치 백터' 만 생각하면 된다.
위치벡터를 사용하는 이유는 우리가 살고있는 지구가 3차원 공간 속에 놓여있기 때문이다.
보다 정확하게 우리의 위치가 어디인지 표현하기 위해, 위치벡터를 기반으로 한 다양한 좌표계가 사용되고 있으며,
좌표계에 따라 사용하는 방법이 다르므로, 3D 모델링, 시뮬레이션 관련 일을 한다면 이 포스팅이 틀림없이 도움이 될 것이다.
1. 직각 좌표계 (데카르트 좌표계) (Rectangular coordinate system)
직각 좌표계에 대한 전반적인 자세한 설명은 다음 링크를 참조하는것을 추천한다.
필자는 이를 쉽게 다듬을 뿐이다.
직각 좌표계는 다음과 같이 나타낸다.
일반인에게 3차원 공간상에 있는 어떠한 점을 텍스트로 나타내라고 한다면,
특정 0,0,0 지점을 기준으로 X, Y, Z 의 3가지 축을 이용하여 설명하려 들 것이다.
그만큼 누구나 생각할 수 있는 직관적인 방법이고, X, Y, Z 값이 서로에게 영향을 미치지 않는다.
이는 '크기는 없고, 방향만 존재하는 벡터' 이다.
이러한 직각좌표계는 여러가지 물리현상을 표현하는데 다소 부족한 좌표계이다.
이에 따라 아래 다양한 좌표계 들이 나타나게 되었다.
2. 원통 좌표계 (Cylindrical coordinate system)
원통 좌표계는
$$ \huge (r, \theta, z) $$
로 나타나게 되며, $r$ 과 $\theta$ 는 '극좌표계' 와 같고, $z$ 좌표는 직각 좌표계와 같다.
여기서 '극 좌표계' 란 개념이 등장하는데, 별로 어려운 념이 아니다.
극 좌표계란.
극좌표계는
이차원 평면에서의 임의의 점의 위치가 기준점으로부터의 거리와 기준 방향에 대한 회전각에 의해 주어지는 이차원 좌표계이다.
로 정의된다.
즉 특정 점이 $r$ (원기둥의 반지름) 과 $\theta$ (각) 에 의해서 정해지며,
이 두가지 정보를 토대로 2차원 상의 한 지점을 특정한다.
그 뒤에 z 값을 이용해 높이를 결정지어 3차원 공간상에 위치한 점에 대한 위치를 나타내는 좌표계이다.
즉 위 그림에 빗대어 설명하면
$r$과 $\theta$가 2차원 원 상의 평면 좌표를 찍고, $Z$가 개입하면서 3차원 공간상의 특정 좌표를 찍게 되는것이다.
원통 좌표계를 자세히 보면 이를 직각 좌표계와 변환할 수 있다는 사실을 알 수 있는데, 삼각함수를 이용해 다소 쉽게 변환할 수 있다.
직교좌표계 ($x, y, z$)와 원기둥좌표계 ($r, \theta, z$) 사이의 관계
$ \large x = r\,cos\,\theta, y = r\,sin\,\theta, z = z $
$ \large r = \sqrt { x^{2} + y^{2}}, tan\,\theta = {y \over x} $
3. 구면 좌표계 (spherical coordinate system)
구면 좌표계는 2차원 평면용인 '극 좌표계를' 3차원으로 확장시킨 념이다.
서로 수직으로 만나는 세 평면을 가정하고, 이 때의 두 평면이 교차하면서 만들어 내는 직선들을 X, Y, Z 라고 지칭할 때.
원점에서의 거리 ($r$), $x$축과 이루는 각도 ($\phi$), $Z$ 축과 이루는 각도 $\theta$ 를 이용해서
특정 좌표를
( $r, \theta, \phi$ ) 라고 지칭하게 된다.
위 원통 좌표계와는 다소 상이한 개념이지만 잘 살펴보면 '우리가 사용하는 위도(latitude), 경도(longitude) 좌표계가
바로 이 '구면 좌표계' 를 변형시켜 만들었다는 점을 알 수 있다.
특정 지형의 '$r$' (거리) 야 정해져 있으니, latitude 와 longitude 만으로 현재 우리가 서 있는 위치를 '특정할 수 있는' 것이다.
여기서 $r$ 값은 altitude (고도) 라는 의미로 치환해서 사용이 가능하다.
4. 왜 직각좌표계가 편한데 다른 좌표계를 굳이 사용함??
여기까지 포스팅을 읽었다면 의문점이 들 것이다. '왜' 직관적이고, 편한 직각좌표계를 사용하지 않을까??
예로, '헬리콥터' 를 운용할때, 이 헬리콥터가 높이만 변한다고 생각해 보자.
원점 (0,0,0) 을 기준으로 높이만 변화한다고 했을 때,
구면 좌표계의 경우는 ($r$) 값만 변화하겠지만. (지구는 원이므로)
위와 같은 '직각 좌표계' 에서는 x, y, z 값이 모두 변화하게 될 것이다.
그럼 우리는 단순 텍스트 값 으로, 특정 객체가 '얼마만큼 이동하였구나' 를 알아보기 힘들어 지는 것이다.
예를 들어
구면 좌표계 기준으로
A 객체가 (100, 100, 100) → (110, 110, 120) 으로 변화했다면
아, A객체의 경도가 10 만큼, 위도가 10 만큼, 고도가 20 만큼 상승했구나! 를 알 수 있는 반면
직각 좌표계 기준으로
A 객체가 (100, 100, 100) → (110, 110, 120) 으로 변화했다면,
직관적으로 객체가 얼마만큼 어떤 위치로 이동했는지 '유추' 하기가 매우 힘들다.
다시 강조하지만 지구는 '원' 이니까!
이렇게 직각 좌표계를 기준으로 설명 되었다면, 다음과 같은 식을 이용해 계산하여
$ \large r = \sqrt{x^2 + y^2 + z^2} $
$ \large \theta = arccos({z \over \sqrt{ x^2 + y^2 + z^2 }})$
$ \large \phi = arctan({y \over x})$
직각좌표계 를 구면좌표계로 변환
구면 좌표계를 도출해야만 위도, 경도, 높이 기준으로 얼마만큼 객체가 이동했는지 직관적으로 파악하는게 가능하다.
반대로 구면 좌표계를 직각 좌표계로 변환할 수도 있다.
$ \large x = r\,sin\,\theta\,cos\,\phi $
$ \large y = r\,sin\,\theta\,sin\,\phi $
$ \large z = r\,cos\,\theta $
구면좌표계 를 직각좌표계로 변환
'Miscellaneous' 카테고리의 다른 글
KTm 알뜰 모바일 APN 설정(핫스팟) (9) | 2021.02.21 |
---|---|
측지 좌표계, 세계 측지 좌표계란? (0) | 2021.02.01 |
항공기 축 3가지 용어 (Heading, Pitch, Roll, Bank, Yaw) (0) | 2020.12.22 |
프로그래밍에서 Pi(파이) 는 어떻게 써야 하나? (0) | 2020.10.25 |
GOTO 를 쓰지 말라는 '개소리' (2) | 2020.07.08 |