1.尤拉角轉換四元素
public class eulerangles
/*** 四元素資料轉換為尤拉角資料
** @param w
* @param x
* @param y
* @param z
*/public eulerangles(float w, float x, float y, float z) else
// yaw (z-axis rotation)
float siny_cosp = 2 * (w * z + x * y);
float cosy_cosp = 1 - 2 * (y * y + z * z);
this.yaw = (float) math.atan2(siny_cosp, cosy_cosp);
}/**
* 尤拉角轉換為四元素資料
** @return
*/public quaternionutils toquaternion()
}
2.四元素轉換尤拉角
public class quaternionutils
public quaternionutils(float w, float x, float y, float z)
/*** 向量旋轉
** @param vector
* @param q
*/static void vectorrotation(float vector, quaternionutils q)
/*** 返回尤拉角
** @return
*/public eulerangles toeulerangles()
/*** 四元數相乘
** @param q0
* @param q1
* @return
*/static quaternionutils multiplication(quaternionutils q0, quaternionutils q1)
/*** 四元數求逆
*/public quaternionutils inverse()
}
四元素與尤拉角之間的轉換
在3d圖形學中,最常用的旋轉表示方法便是四元數和尤拉角,比起矩陣來具有節省儲存空間和方便插值的優點。本文主要歸納了兩種表達方式的轉換,計算公式採用3d笛卡爾座標系 圖1 3d cartesian coordinate system from wikipedia 定義圖2 tait bryan ang...
旋轉矩陣,四元素,尤拉角
旋轉變換 旋轉變換最為直觀的表示方法是 軸 角 繞著某乙個過原點軸,旋轉某一角度。軸可以用乙個單位長度的點 w1,w2,w3 w1,w2,w3 表示 原點到該點的射線即為此軸。使用右手座標系,拇指指向軸方向,四指方向即為旋轉的方向。乙個旋轉變換可以用用尤拉角 四元數或者旋轉矩陣表示。以下討論不同表示...
OSG 旋轉矩陣和四元素 尤拉角
osg中需要對節點進行旋轉,是通過matrixtransform節點來進行。osg在描述旋轉時候一般通過osg matrix來描述。比如 osg vec3d pt 10,0,0 通過乘法可以進行對點的旋轉。pt pt matrix matrix 裡面除了含有旋轉,還包含了縮放,平移 它的含義如下 1...