ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 좌표변환(평행이동, 회전이동), 구면좌표계, 원통좌표계
    D3D를 위한 수학 2022. 12. 14. 09:06
    728x90
    반응형

    좌표변환

    평행이동(각 요소에대해 평행이동벡터를 더한다)

    회전변환

    변환 행렬

      R_x(θ) = [  1      0       0   ]

                   [  0    cosθ  -sinθ]

                   [  0    sinθ   cosθ]

     

      R_y(θ) = [conθ    0      sinθ]

                    [  0       1        0  ]

                    [-sinθ    0     cosθ]

     

      R_z(θ) = [cosθ  -sinθ     0  ]

                  [sinθ   cosθ     0  ]

                   [  0       0        1  ]

    **항상 방향은 반시계방향(오른손을 들어서 엄지를 축으로뒀을때 감기는방향)

    3D회전좌표 R = R_z(θ_3) R_y(θ_2) R_x(θ_1)

     

    좌표축이아닌 임의의 단위벡터 u = (u_x, u_y, u_z)을 회전축으로 한 회전변환 행렬은

    다음과 같다.(단, u_x^2 + u_y^2 + u_z^2 = 1)

                 [   cosθ+u_x^2*(1-cosθ)       u_x*u_y*(1-cosθ)-u_z*sinθ     u_x*u_z*(1-cosθ)+u_y*sinθ]

          R = [u_y*u_x*(1-cosθ)+u_z*sinθ       cosθ+u_y^2*(1-cosθ)        u_y*u_z*(1-cosθ)-u_x*sinθ] 

                 [u_z*u_x*(1-cosθ)+u_y*sinθ   u_z*u_y*(1-cosθ)+u_x*sinθ        cosθ+u_z^2*(1-cosθ)   ]

     

     

    회전변환R, 평행이동 t= [tx, ty, tz]^T를 이용한 일반적인 3D변환식(rigid변환)은 다음과같다.

    [X`]       [X]    [t_x]

    [Y`] = R[Y] + [t_y]

    [Z`]       [Z]    [t_z]

     

    2D변환과 마찬가지로, 3D 변환에서도 homogeneous 좌표를 사용하면 다음과 같이

    회전변환과 평행이동을 하나의 변환행렬로 즉, 선형변환 형태로 표현할수 있다.

    [X`]     [r_11   r_12   r_13   t_x]    [X]

    [Y`] =  [r_21  r_22  r_23  t_y] + [Y]

    [Z`]     [r_31  r_32  r_33   t_z]    [Z]

    [1 ]       [  0       0     0      1  ]    [1]

     

     

     

     

    구면좌표계(spherical coordinate system)

    3차원 공간 상의 점들을 나타내는 좌표계의 하나로, 보통(r,θ, Φ)로 나타낸다.

    원점에서의 거리 r은 0부터 무한대까지,

    양의방향의 z축과 이루는 각도 θ는 0부터π까지,

    z축을 축으로 양의방향의 x축과 이루는 각 Φ는 0부터 2π까지의 값을 갖는다.

     

    θ는 위도로, Φ는 경도로 표현되는 경우도 있다.

    하나의 점을 나타내는 좌표는 여러개일수 있다. 축지점의 좌표들이 대게 그럼

     

    직교좌표계->구면좌표계

    r = 루트(x^2 + y^2 + z^2)

    θ= arccos(z/r)

    Φ= arctan(y/x)

     

    구면좌표계->직교좌표계

    x = r*sinθ*cosΦ

    y = r*sinθ*sinΦ

    z = r*cosθ

     

    단위벡터

      단위R =(dR/dr) / l(dR/dr)l = [sinθ*cosΦ]

                                                 [sinθ*sinΦ ]

                                                 [   cosθ    ]

     

      단위벡터θ =(dR/dθ) / l(dR/dθ)l = [cosθ*cosΦ]

                                                         [cosθ*sinΦ ]

                                                         [  -sinθ     ]

     

      단위벡터Φ =(dR/dΦ) / l(dR/dΦ)l = [-sinΦ]

                                                           [ cosΦ]

                                                           [   0  ]

     

     

     

    원통좌표계(cylindrical coordinate system)

    3차원 공간을 나타내기 위해, 평면 극좌표계에 평면에서부터의 높이z(혹은 h)를 더해,

    (r,θ, z)로 이루어지는 좌표계이다.

    원통좌표계는 한 축을 중심으로 대칭성을 갖는 경우에 유용하다.

    예를들면, 반지름이 c인 무한히 긴 원통의 직교좌표계에서의 식은 x^2 + y^2 = c^2이지만,

    원통좌표계에서는 간단히 r = c가 된다. 이런 이유로 원통좌표계란 이름이 붙어있다.

    - r은 원점에서 p의점을 xy평면으로의 사영p`까지의 거리를 나타낸다. (lplcosθ)(r>=0)

    - θ는 양의 x축 방향에서 반시계 방향으로 측정한 op까지의 각이다.(0<=θ<=2π)

    - z는 z(높이)와 같다.(z제한없음)

     

    직교좌표계->원통좌표계

      r = 루트(x^2 + y^2)

      θ= tan^-1(y/x)

      z = z

     

    단위벡터

      단위R =(dR/dr) / l(dR/dr)l = [sinθ]

                                                  [sinθ]

                                                  [  0  ]

     

      단위벡터θ =(dR/dθ) / l(dR/dθ)l = [-sinθ]

                                                         [ cosθ]

                                                         [  0    ]

     

      단위벡터z =(dR/dz) / l(dR/dz)l = [0]

                                                        [0]

                                                        [1]

    728x90
    반응형

    댓글

Designed by Tistory.