[게임수학] 16. 사원수: 4차원 수로 설계한 3차원 회전

    사원수(Quaternion) : 4개의 독립된 체계로 구성된 4차원의 수집합, 2차원의 복소평면을 4차원 공간으로 확장한 개념

    16.1 사원수 대수

    사원수를 구성하는 세 허수

    사원수는 3개의 허수부 i,j,k 로 구성되어있지만 허수단위 i와 같은 성질을 가진다.

    사원수의 구조

    사원수의 덧셈

    q1 + q2 = (a1 + a2) + (b1 + b2)i + (c1 + c2)j + (d1 + d2)k
    • 결합법칙 : q1 + (q2 + q3) = (q1 + q2) + q3
            = (a1 + a2 + a3) + (b1 + b2 + b3)i + (c1 + c2 + c3)j + (d1 + d2 + d3)k
    • 교환법칙 : q1 + q2 = q2 + q1 = (a1 + a2) + (b1 + b2)i + (c1 + c2)j + (d1 + d2)k
    • 항등원 : (a + bi + cj + dk) + (0 + 0i + 0j + 0k) = (a + bi + cj + dk)
    • 역원 : (a + bi + cj + dk) + (-a - bi - cj - dk) = (0 + 0i + 0j + 0k)

    사원수의 곱셈

    q1 · q2 = (a1a2 - b1b2 - c1c2 - d1d2) + (a1b2 + a2b1 + c1d2 - d1c2)i + (a1c2 + a2c1 + b2d1 - b1d2)j + (a1d2 + a2d1 + b1c2 - c1b2)k
    • 결합법칙 : q1 · (q2 · q3) = (q1 · q2) · q3
    • 분배법칙 : q1 · (q2 + q3) = q1 · q2 + q1 · q3
    • 항등원 : (a + bi + cj + dk) · (1 + 0i + 0j + 0k) = (a + bi + cj + dk)
    • 교환법칙은 성립하지 않음

    사원수의 크기는 기호 | | 를 사용하여 표기한다 사원수의 크기를 노름(Norm)이라 부른다.

    |q| = sqrt(a^2 + b^2 + c^2 + d^2)

    사원수와 벡터

    q = w + xi + yj + zk = (w, v->)
    q1 + q2 = (w1 + w2, v1-> + v2->)

    q1·q2 = (w1w2 - (v1->·v2->), w1v2-> + w2v1-> + v1 x v2)

    순허수 사원수(Pure imaginary quaternion)

    xi + yj + zk = (0, v->)

    16.2 사원수의 회전

    e^iθ = cos θ + i sin θ = (cos θ, sin θ)

    사원수와 오일러 공식

    회전 사원수 (Rotation quaternion) : 4차원 공간에서 회전축 n->을 중심으로 회전 변환하는 성질을 가지는 사원수 (cos θ, sin θ)

    회전 사원수를 이용한 3차원 공간에서의 회전

    회전 사원수와 순허수 사원수 벡터 v->의 곱셈

    v'-> = q · v->
    = (cos θ, sin θ · n->)·(0, v->)
    = (-sin θ(n-> · v->), cos 0 v-> + sin 0(n-> x v->))

    16.3 사원수의 변환

    오일러 각에서 사원수로의 변환

    q = (cos 0/2, sin 0/2·x->) = cos 0/2 + sin 0/2 i

    사원수에서 오일러 각으로의 전환

    중략

    사원수에서 회전 변환 행렬로의 변환

    ┌ 1-2(y^2+z^2) 2(xy-zw) 2(xz+yw) ┐
    │ 2(xy+zw) 1-2(x^2+z^2) 2(yz-xw) |
    └ 2(xz-yw) 2(yz+xw) 1-2(x^2+y^2) ┘

    회전 변환행렬에서 사원수로의 변환

    중략

    16.4 사원수의 보간

    사원수의 장점

    • 오일러 각과 쉽게 변환이 가능하며 회전행렬 제작이 용이
    • 임의의 축에 대한 회전 표현이 가능하여 짐벌락 현상을 방지
    • 임의의 축에 대한 회전 보간 값을 구할 수 있음
    • 4개의 숫자만 사용하여 저장 공간을 효율적으로 쓸 수 있음
    • 오일러각
      • 저장 공간이 가장 작다. 공간의 수 3
      • 짐벌락 현상이 발생한다.
      • 한 기저 축에 대해서만 회전 보간이 가능하다.
      • 직관적이다.
    • 행렬
      • 저장 공간이 크다. 공간의 수 9
      • 짐벌락 현상이 발생하지 않는다.
      • 회전 보간이 불가능하다.
      • 직관적이지 않다.
    • 사원수
      • 저장 공간이 작다. 공간의 수 4
      • 짐벌락 현상이 발생하지 않는다.
      • 회전 보간이 임의의 축에 가능하다.
      • 직관적이지 않다.

    16-1 실습

    자유로운 3차원 회전의 구현

    정리

    • 사원수의 대수 구조를 설명
    • 사원수를 활용해 3차원 공간의 회전에 사용되는 수학
    반응형

    댓글

    Designed by JB FACTORY