Last Update: 2016/4/16 19:00+08
Type: Note
q = a + bi + cj + dk = a + v
讓空間表示、運算和旋轉都變簡單的東西
看倌對四元數的數學推導有興趣的話, 請先離開吧~
四元數的一開始看還真的挺難懂的
所以我想先用比較輕鬆不科學的方式來描述它的幾何意義
可以試想一下, 一個座標系的表示
一定可以用一個向量 + 一個旋轉量來決定
這裡用Microsoft XNA 的 Quaternion.CreateFromAxisAngle 來測試
你要讓一個物體在3D空間中旋轉, 也是給一個轉軸+角度
因此就出現了四元數(騙你的)
但這個向量和旋轉量必須要符合一些數學意義
包含加、減、結合律、分配律與內外積
然後就出現了一堆計算和推導(就是想略過)
最終形成的就是一個向量+一個純量(不就廢話)
藉由轉動 純量會越來越小, 向量會越來越大
直到轉半圈 向量會最大, 純量會最小
正轉和反轉差個負號
q = a + bi + cj + dk = a + v
假設 v = (3,2,1)
逆時鐘轉 從原點 -> 半圈 -> 1圈 -> 1.5 -> 2
(b,c,d) 會從 (0,0,0) -> (3,2,1) -> (0,0,0) -> (-3,-2,-1) -> (0,0,0)
a 會從 1 -> 0 -> -1 -> 0 -> 1
順時鐘轉 從原點 -> 半圈 -> 1圈 -> 1.5 -> 2
(b,c,d) 會從 (0,0,0) -> (-3,-2,-1) -> (0,0,0) -> (3,2,1) -> (0,0,0)
a 會從 1 -> 0 -> -1 -> 0 -> 1
順逆時鐘轉應該只是表示的問題, ex: x軸逆轉半圈 = -x軸逆轉半圈
為何2圈才會回原點, 得看數學式
有機會再詳述, 此篇僅筆記
沒有留言:
張貼留言