靜態資料成員
quaternion quaternion::zre)(0.0, 0.0, 0.0, 0.0); 零四元數
quaternion quaternion::identity(1.0, 0.0, 0.0, 0.0) 單位四元數
建構函式
ogre::quaternion::quaternion
(real
fw =1.0
,
real
fx =0.0
,
real
fy =0.0
,
real
fz =0.0
)ogre::quaternion::quaternion
(const matrix3 &
rot)
從乙個3*3旋轉矩陣構造乙個四元數
ogre::quaternion::quaternion (const radian & ***ngle, const vector3 & rkaxis ) 角度和座標軸構造乙個四元數
點乘,四元數的點乘表示的是旋轉的相似程度,結果是個實數,值越大,表示旋轉的方式越相似。
real ogre::quaternion::dot
(const quaternion &
rkq)
const
由3*3旋轉矩陣生成四元數,引數是旋轉矩陣。
void quaternion::fromrotationmatrix (const matrix3& krot)
將四元數轉換為旋轉矩陣,引數是回傳引數,接收得到的旋轉矩陣。
void quaternion::torotationmatrix (matrix3& krot) const
由四元數生成軸、角表示法的角和軸。引數是引用引數,回傳用途。
void quaternion::toangleaxis (real& ***ngle, vector3& rkaxis) const
由3個向量表達的旋轉矩陣生成四元數,引數是指標指向的多個向量表達的旋轉矩陣(一般為3個)
void quaternion::fromaxes (const vector3* akaxis)
由3個向量表達的旋轉矩陣生成四元數
void fromaxes (const vector3& xaxis, const vector3& yaxis, const vector3& zaxis);
由四元數生成旋轉矩陣,該矩陣由指標指向的多個(3個)向量表達。
void toaxes (vector3* akaxis) const;
由四元數生成旋轉矩陣,該矩陣由3個向量表達。
void toaxes (vector3& xaxis, vector3& yaxis, vector3& zaxis);
過載=操作符
quaternion& operator= (const quaternion& rkq);
過載+操作符
quaternion operator+ (const quaternion& rkq) const;
過載-操作符
quaternion operator- (const quaternion& rkq) const;
過載*操作符,四元數*四元數。
quaternion operator* (const quaternion& rkq) const;
過載*操作符,四元數*標量。
quaternion operator* (real fscalar) const;
過載*操作符,四元數*四元數。過載為友員方式。
friend quaternion operator* (real fscalar, const quaternion& rkq);
過載負號操作符
quaternion operator- () const;
過載==操作符
bool operator== (const quaternion& rhs) const;
四元數點乘
real dot (const quaternion& rkq) const;
四元數求模
real norm () const;
四元數求倒數,要求本四元數非0
quaternion inverse () const;
單位四元數求倒數,要求本四元數為單位四元數。
求四元數的指數,即e的四元數次方
quaternion exp () const;
以e為底求四元數的對數
quaternion log () const;
用四元數旋轉向量(似乎nvidia的sdk才支援)。
vector3 operator* (const vector3& rkvector) const;
靜態成員函式,球面線性插值。引數ft為0-1的時間因子。
static quaternion slerp (real ft, const quaternion& rkp, const quaternion& rkq);
靜態成員函式,帶干擾因子的球面線性插值。引數ft為0-1的時間因子。
static quaternion slerpextraspins (real ft, const quaternion& rkp, const quaternion& rkq,
int iextraspins);
靜態成員函式,目前不清楚用途。
static void intermediate (const quaternion& rkq0,
const quaternion& rkq1, const quaternion& rkq2,
quaternion& rka, quaternion& rkb);
靜態成員函式,樣條插值(二次插值)。目的是在已知樣條形狀的情況下,通過插值得到平滑的目的線條。ft為0-1的時間因子。rkp和rkq為樣條的起點和終點,而rka和為rkb插值過程中的某一線段的起點和終點(控制點連線)。
Ogre中的四元數Quaternion類
四元數最早是為了擴充套件複數應用而產生與發展起來的。然而,人們發現四元數也可以應用在計算機圖形學上,作為表現旋轉的可選擇方法之一。普通的複數形式可以寫成 xi y 其中x 是虛部,y是實部。不可思議的是 i的平方等於 1,那個 1的平方根就像你應該知道的那樣,其並不存在。因此取名叫 虛數 假如xi ...
unity 四元數一些理解
unity 四元數一些理解 一 兩個四元數相乘 給定兩個四元數p和q,分別代表旋轉p和q,則乘積pq表示兩個旋轉的合成 即旋轉了q之後再旋轉p 並不是用加法。二 quaternion.inverse 求逆 返回引數rotation的逆向quaternion值 crrentrotation quate...
關於xmpp的一些解釋
一 定義 xmpp 是一種很類似於http協議的一種資料傳輸協議,它的過程就如同 解包裝 包裝 的過程,使用者只需要明白它接受的型別,並理解它返回的型別,就可以很好的利用xmpp來進行資料通訊。xmpp的核心協議的定義使得xmpp能夠在乙個比以往網路通訊協議更規範的平台上。借助於xml易於解析和閱讀...