四元数(クォータニオン)の計算やらなんやらができます.主に演算子オーバーロードの練習で作りました.温かい目で見てやってください.
Dependencies: Vector3
Dependents: Hybrid_main_FirstEdtion MadgwickFilter MadgwickFilter
Fork of Quaternion by
Diff: Quaternion.hpp
- Revision:
- 6:0c20582087b1
- Parent:
- 5:3c531c1f56cc
--- a/Quaternion.hpp Wed Jun 07 00:57:58 2017 +0000 +++ b/Quaternion.hpp Wed Oct 25 08:08:06 2017 +0000 @@ -23,16 +23,13 @@ * @bref Vector3クラスからクォータニオンを作ります */ Quaternion(Vector3 vector){ - w = 0.0; - x = vector.x; - y = vector.y; - z = vector.z; + set(vector); } /** * @bref クォータニオンを回転軸と回転角度によって初期化します。 - * param vec 回転軸となる3次元ベクトル - * param angle 回転角 [rad] + * @param vec 回転軸となる3次元ベクトル + * @param angle 回転角 [rad] */ Quaternion(Vector3 vec, double angle){ set(vec, angle); @@ -230,6 +227,14 @@ val[2] = (atan2(2.0f * (x * y + w * z), q0q0 + q1q1q2q2 - q3q3)); } + /** + * @bref クォータニオンをVector3クラスに変換します + * @note クォータニオンのx,y,z成分を持ったベクトルを作ります + */ + Vector3 makeVector3(){ + Vector3 vec3(x, y, z); + return vec3; + } };