關於Ogre四元數類的一些解釋

來源:互聯網
上載者:User

待用資料成員

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 & rfAngle, 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& rfAngle, 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; 

單位四元數求倒數,要求本四元數為單位四元數。

Quaternion UnitInverse () const;  // apply to unit-length quaternion

求四元數的指數,即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插值過程中的某一線段的起點和終點(控制點連線)。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.