'3인칭카메라'에 해당되는 글 1건

  1. 2018.03.09 좌표계 (직교,극)
프로그래밍/수학2018. 3. 9. 20:43

1.직교 좌표계(orthogonal coordinate system)


좌표계는 물체의 위치를 특정한 하나의 점으로 유일하게 가리키기 위한 체계다.


우리가 흔히 알고 있는 원점에서 직각으로 교차 하는 x축,y축으로 구성된 좌표계를 직교좌표계 라고 한다.

(데카르트 좌표계 라고 부르기도 함)




위와 같은 형태의  좌표계는 2차원 평면상의 위치를 표현하기에 알맞고 많이 사용된다.



(사진 출처 : http://msdn.microsoft.com/en-us/library/windows/apps/ff729721.aspx)


여기에 z축만 추가하게 되면 3차원상의 위치 표현이 가능해진다.


그리고 z축의 방향이 앞으로 향하느냐 뒤로 향하느냐에 따라서 


왼손좌표계,오른손좌표계로 나뉘기도 한다.


주로 directX진형에서는 왼손좌표계가 기본으로 사용되고, 


OpenGL 진영에서는 오른손 좌표계를 사용한다고 함.


가장 기본적인 좌표 체계이다.



2.극좌표계 (polar coordinate system)


한편 직교좌표계와는 다른 방식으로 위치를 나타내는 좌표계도 존재한다. 

그 대표적인 좌표계가 극 좌표계 이다. (polar coordinate system)



극 좌표계에서 평면상의 점의 위치를 결정하는 것은 극(기준점 O)과 극축(x축)을 기준으로한 반지름의 길이와 각도 이다.


극좌표계에서 저 빨간 점을 x,y로 표현한다면, 극좌표계에서는 r,θ(반지름 각도) 로 읽는다.


삼각함수의 원리를 이용하면 극좌표를 직교좌표로 표현할수 있는데.

극좌표 (r,θ)는 직교좌표 (r * cosθ , r * sinθ)와 같다.

반대로

직교좌표 (x,y)는 극좌표 (x^2+y^2 , atan2(y,x)) 와 같다.


극좌표는 평면상에서 원의 원주 위를 이동시킨 다던지 행동을 할때 활용하면

직관적으로 처리가 쉬워진다.


직교좌표계에 z축을 추가해서 3차원 공간을 표현하는 것 처럼.

극좌표계도 마찬가지로 축을 하나 더 추가하면 3D극좌표계를 정의할 수 있다.

이러한 3D극좌표계를 특별히 구면좌표계 라고 부른다.


(사진 출처 : https://www.celestis.com/resources/faq/what-are-the-azimuth-and-elevation-of-a-satellite/)


Azimuth(방위각)  : 북의 방향과 물체(노란공)이 이루는 각도

Elevation(앙각) : 천정(Zenith)을 향해 물체(노란공)이 고도를 높여 이동한 각도

대표적인 사용 예로는 지구본을 떠올리면 쉽다. (경도,위도)



게임내에서는 구면을 이동하는 물체(지구를 빙빙 도는 위성)을 표현하거나.

3인칭 시점의 카메라를 구현하는데 활용하면 좋다.



유니티에서의 구현 샘플 : https://github.com/ryukbk/mobile_game_math_unity 프로젝트의 Chapter02 스크립트 참고.

(3인칭 카메라 이동)


-참고 : 유니티로 배우는 게임수학




'프로그래밍 > 수학' 카테고리의 다른 글

터치 영역판별 비트연산 코드  (0) 2019.01.22
Posted by JinFluenza