91. 사원수란 무엇인가
위와 같은 형태를 가진다. 복소수를 확장시켜서 나온 개념이다.
92. 사원수 곱셈 1부
실수와 복소수에서의 곱셈은 교환법칙이 성립하지만 사원수에서는 곱셈의 교환법칙이 성립하지 않는다.
사원수끼리의 곱셈은 포일 메서드와 같이 각 요소마다 총 16번 곱해주면 된다.
전개된 식을 위의 i, j, k 관계로 다시 정리하면 약간 더 단순화 된다.
93. 사원수 곱셈 2부
전개식을 마저 정리하면 실수곱, 내적, 외적으로 깔끔하게 정리된다.
행렬로 더 깔끔하게 정리할수도 있다. 4x1행렬에 어떤걸 놓느냐에 따라 일부 부호가 달라진다.
94. 사원수 회전 1부
사원수의 곱으로 발생되는 회전은 일종의 4차원 회전이다. 하지만 4차원은 시각적으로 표현하기가 매우 어렵기때문에 jk평면에서의 회전은 볼 수 있지만 i의 복소평면에서의 회전은 시각적으로 회전으로 보이지 않고 i, -i 사이에서 값이 생겼다가 사라졌다 한다.
위의 그림은 i축을 기준으로 회전한것을 표현한것인데, 허수축에서 jk평면 회전과 i의 복소평면에서의 회전 총 2번이 이루어진다고 보면 된다.
시각적으로 상상하기가 매우 어려운게 맞다.
3차원 물체가 z축 앞뒤로 움직이는것을 2차원 xy평면에서 바라본다고 하면 평면에서 사라졌다가 생겼다가 하기 때문이다. (2차원 평면과 닿아있는 단면만 볼 수 있다.)
95. 사원수 회전 2부
어떤 사원수 q에 입력벡터 v를 곱하면(qv) 3차원에서의 회전과 4차원에서의 회전이 이루어진다.
어떤 입력벡터 v에 켤레사원수 q*를 곱하면(vq*) 3차원에서의 회전과 4차원에서의 역방향 회전이 이루어진다.
이 둘을 결합하면 qvq*가 되고 같은 방향으로의 3차원 회전이 두번 이루어지고 4차원에서의 회전이 상쇄되어 2번의 3차원 회전만 남게된다.
잠시 2차원에서의 회전을 짚어보고 가자.
v를 θ만큼 회전시킨게 v'이라고 했을 때, 공식은 위와 같다. 이 공식을 사원수로 확장시켜보자.
복소평면에서의 i축을 실수, ijk공간을 하나의 축으로써 본다. ijk공간은 실제로 3차원 공간이지만 표현상 2차원으로밖에 되지 않는다.
복소평면에서 실수축과 직교하는 i축이 있는것처럼 ijk공간에 존재하는 벡터 u의 축은 실수축과 직교한다. 또한 벡터 u는 회전축을 나타낸다. 벡터 u를 전개한 사원수 q는 다음과 같다.
앞서 qvq*는 3차원 회전이 두번 이루어지고 4차원 회전이 상쇄되었다고 했다. 하지만 우리가 회전하고자 하는 각은 θ이지 2θ가 아니다. 그래서 θ가 아닌 θ/2를 사용하게 된다.
최종적으로 위의 식이 완성된다.
사원수의 곱은 어떻게 작동하는지 정확히 이해하고 난 뒤에 특별히 수정해야 할 일이 발생하지 않는 한 만들어진 코드를 수정하지 않는것이 좋다.
마지막으로, 사원수의 곱에 의한 회전이 2배로 이루어지는것 때문에 180도 이상의 회전을 나타낼 수 없다.
'이론 > 게임수학' 카테고리의 다른 글
[게임수학] 확률과 통계 (1) (0) | 2023.01.14 |
---|---|
[게임수학] 회전과 보간 (4) (0) | 2023.01.13 |
[게임수학] 회전과 보간 (2) (0) | 2023.01.12 |
[게임수학] 회전과 보간 (1) (0) | 2023.01.12 |
[게임수학] 벡터와 행렬 (4) (0) | 2023.01.11 |