程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> 四元數與矩陣

四元數與矩陣

編輯:C++入門知識

四元數是最簡單的超復數。形如:a + bi + cj + dk 。

令 四元數 p =w1 + x1 * i  +  y1 * j + z1 * k   =    w1 + v1  ( 實部 + 虛部  ) 。

令 四元數 q =w2 + x2 * i  +  y2 * j + z2 * k   =    w2 + v2  ( 實部 + 虛部  ) 。


加法:p + q  = (w1 + w2 ) + (x1 + x2 ) *  i + (y1 + y2)  * j +(z1 + z2) * k

乘法:p * q = (w1  + ( x1 * i  + y1 * j + z1 * k) ) * (w2  + ( x2 * i  + y2 * j + z2 * k) ) 

  = w1 * w2  - v1 .v2 (點乘) + v1 X v2 (叉乘)+ w1* v2 + w2 * v1

 


用途:可用來 代替 旋轉矩陣

如三維幾何中,要求某一質點繞向量 (a ,  b,  c) 旋轉 θ度  則四元數(x , y , z , w)可表示為 :

令 s = sin (θ / 2),c = cos ( θ / 2 )

則 x = s* a ,

    y = s * b,

    z = s * c,

   w = c

 


而旋轉矩陣與四元數的轉換:

[ w2+x2-y2-z2 , 2xy-2wz , 2xz+2wy ]
[ 2xy+2wz , w2-x2-y2-z2 , 2yz-2wx ]
[ 2xz-2wy , 2yz+2wx , w2-x2-y2-z2 ]

 

 

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved