연재 완료/프로그래밍용 수학 공부

2. 좌표계 정의와 점의 표현

라이피 (Lypi) 2018. 11. 12. 16:59
반응형

2D에서의 좌표계

  a) 직교 좌표계 / b) 구 좌표계

    a-1) 데카르트 좌표계 / a-2) 화면 좌표계


1. 데카르트 좌표계 (혹은 Cartesian Coordinate System)

  # x축의 양의 방향이 오른쪽을 향하고, y축의 양의 방향이 윗쪽을 향하는 좌표계. 

  # 일반적인 2D 수학에서 쓰이는 좌표계

  # x축과 y축이 직교하는 직교 좌표계이다.

  # 2D 직교 좌표계의 점은 일반적으로 (x, y)로 표현한다.


2. 화면 좌표계

  # x축의 양의 방향이 오른쪽을 향하고, y축의 양의 방향이 아래쪽을 향하는 죄표계. 

  # 컴퓨터 화면은 위에서 아래로 읽으므로 y축의 양의 방향이 아래를 향한다.

  # 기본적으로 픽셀 단위를 사용하며 화면의 좌측 상단이 0,0이 된다.

  # x축과 y축이 직교하는 직교 좌표계이다.

  # 직교 좌표계의 점은 (x, y)로 표현한다.

  

  # 데카르트 좌표계의 점 P(x, y)를 화면 좌표계의 점으로 변환하면 P(x, y) -> p'(x,- y)가 된다.



3. 극 좌표계

  # 평면 위의 위치를 각도와 거리로 표현하는 2차원 좌표계.

  # 데카르트 좌표계의 x축의 양의 방향을 0도로 표현한다.

  # 극 좌표계에서는 degree각도보다 radian각도를 사용하는 것이 더 효율적이다.

  # 극 좌표계에서의 점은 일반적으로 (r(반지름), θ(각도))를 이용해서 표현한다.

  # 극 좌표계에서는 하나의 점을 표현하는 좌표가 여러개 일 수 있으므로 r >= 0, 0 ≤ θ < 2π로 제한한다. 

        


 # 극 좌표계의 점 P(r, θ)를 직교 좌표계의 점 P'으로 변환하면 P' = (r*cos(θ), r*sin(θ))가 된다.                                                        극좌표계와 직교좌표계의 관계

 # 직교 좌표계의 점 P(x, y)를 극 좌표계의 점으로 변환하는건 좀 복잡하다.

 # 일단 r은 피타고라스의 정리를 이용해서 구한다. ex) r = pow(x*x+y*y,1/2); 

//개인적으로 sqrt함수보다 pow함수로 계산하는 걸 선호함

 

  #r이 0이 아닐 때 θ의 범위가 0~2π이면  이다(..)


  # 게임에서는 극좌표계로 계산한걸 직교좌표계로 변환하는 일이 대부분이라 참 다행이다.





3D에서의 좌표계


4. 오른손 좌표계와 왼손 좌표계

  # 2D 직교 좌표계에서 z축을 하나 더 추가한 직교 좌표계.

  # x,y,z가 어디에 있고, 양의 방향이 어느쪽인지는 정의하기 마련이기 때문에 가장 일반적인 오른손 좌표계와 왼손 좌표계만 소개한다.

  # 오른손 좌표계는 z축이 화면을 기준으로 내쪽을 향하고, 왼손 좌표계는 z축이 내 바깥쪽을 향한다.

  # 3D 직교 좌표계의 점은 일반적으로 (x,y,z)로 표현한다.



  # 프로그램마다 쓰는 3D좌표계는 다음과 같다.




5. 원통 좌표계와 구면 좌표계

  # 원통 좌표계 : 2D의 극좌표계를 쌓아서 만든 좌표계. 극좌표계에 수직으로 z축을 추가했다고 생각하면 된다.

  # 원통 좌표계에서의 한 점은 (r(반지름), θ(각도), z(높이))로 표현한다.


  # 구면 좌표계 : 극좌표계에 z축을 추가하고 z축의 값도 x축이나 y축에서의 각도로 표현하는 좌표계.

  # 구면 좌표계에서의 한 점P는 (r(반지름), θ(각도1), φ(각도2))로 표현한다.

  # 의미는 r : 원점에서 P까지의 거리, θ : z축의 양의 방향으로부터 원점과 P가 이루는 직선까지의 각, 

              φ : x축의 양의 방향과 원점과 P가 이루는 직선을 xy평면에 투영시킨 직선까지의 각.


  # 구면 좌표계에서는 좌표값에 따라 한 점을 가리키는 표현이 여러개가 되는 경우가 있으므로, 각 변수의 범위를 다음과 같이 제한한다.

  # r >= 0, 0 ≤ θ ≤ π, 0 ≤ φ < 2π

                                 

                              원통 좌표계                                         구면 좌표계



  # 원통 좌표계는 거의 쓰지 않으니 원통->직교와 직교->원통은 생략.

  # 구면 좌표계의 한 점 P(r, θ, φ)를 직교 좌표계의 한 점 P'으로 변환하면 P' = (r*sin(θ)*cos(φ), r*sin(θ)*sin(φ), r*cos(θ))가 된다.

  # 직교 좌표계의 한 점 P(x, y, z)를 구면 좌표계의 한 점 P'으로 변환하면 P' = (sqrt(x*x+y*y+z*z), arccos(z/r), arctan(y/x))가 된다.

  


        # 사실 게임을 만들 때는 직교좌표계내의 벡터로 표현하기 때문에 위의 좌표계를 직접적으로 쓰는 경우는 많지 않다.

  



반응형