GaitGeneration by Graph Search
読み取り中…
検索中…
一致する文字列を見つけられません
公開メンバ関数 | 静的公開メンバ関数 | 公開変数類 | 全メンバ一覧
designlab::Quaternion 構造体final

クォータニオンを表す構造体. [詳解]

#include <math_quaternion.h>

designlab::Quaternion 連携図
Collaboration graph
[凡例]

公開メンバ関数

constexpr Quaternion ()
 1 + {0,0,0}で初期化する,
 
constexpr Quaternion (const float w_, const float x_, const float y_, const float z_)
 スカラー成分とベクトル成分を指定して初期化する. ノルムが1になるように代入すること,
使用は非推奨,MakeByAngleAxisを使うこと.
 
constexpr Quaternion (const float w_, const Vector3 &v_)
 スカラー成分とベクトル成分を指定して初期化する. ノルムが1になるように代入すること,
使用は非推奨,MakeByAngleAxisを使うこと.
 
constexpr Quaternion (const Quaternion &q)=default
 コピーコンストラクタ.
 
constexpr Quaternion (Quaternion &&q) noexcept=default
 ムーブコンストラクタ.
 
constexpr Quaternionoperator= (const Quaternion &q)=default
 コピー代入演算子.
 
constexpr Quaternion operator+ () const noexcept
 
constexpr Quaternion operator- () const noexcept
 
constexpr Quaternion operator+ (const Quaternion &q) const noexcept
 
constexpr Quaternion operator- (const Quaternion &q) const noexcept
 
constexpr Quaternion operator* (const Quaternion &q) const noexcept
 
constexpr Quaternion operator* (const float s) const noexcept
 
constexpr Quaternion operator/ (const float s) const
 
bool operator== (const Quaternion &q) const noexcept
 
bool operator!= (const Quaternion &q) const noexcept
 
bool operator< (const Quaternion &q) const noexcept
 
bool operator> (const Quaternion &other) const noexcept
 
bool operator<= (const Quaternion &other) const noexcept
 
bool operator>= (const Quaternion &other) const noexcept
 
constexpr float Dot (Quaternion other) const noexcept
 クォータニオンの内積を返す. クォータニオンを4次元のベクトルとみなし,ベクトルの内積を求める.
 
constexpr Quaternion GetConjugate () const noexcept
 クォータニオンの共役を返す. 共役なクォータニオンとは,ベクトル成分の符号を反転させたもの
q = w + xi + yj + zk とすると, qの共役は w - xi - yj - zk となる.回転は逆方向になる
 
constexpr float GetLengthSquared () const noexcept
 クォータニオンの長さの2乗を返す(ノルムの2乗).
クォータニオンの長さの2乗は,w^2 + x^2 + y^2 + z^2 で求められる.
 
float GetNorm () const noexcept
 クォータニオンのノルムを返す.
ノルムとは,ベクトルの大きさのこと. クォータニオンのノルムは,w^2 + x^2 + y^2 + z^2 の平方根で求められる.
 
Quaternion GetInverse () const
 クォータニオンの逆数を返す.
クォータニオンqの逆数q^-1は,qの共役をノルムで割ったもの.
q^-1 = q* / |q|^2
 
Quaternion GetNormalized () const noexcept
 正規化したクォータニオンを返す.
クォータニオンの正規化とは,ノルムを1にすることを表す.
クォータニオンqの正規化は,q / |q| で求められる.
 
constexpr float GetDistanceSquared (const Quaternion &q) const noexcept
 他のクォータニオンとの距離の2乗を返す. クォータニオンを4次元ベクトルとみなし,ベクトルの距離の2乗を求める.
 
void Normalize () noexcept
 自身を正規化する.ノルムが1になる.
 
constexpr Quaternion ToLeftHandCoordinate () const noexcept
 左手座標系への変換を行う.
言うまでもないが,機械工学では通例右手座標系を使う. しかし,dxlib は左手座標系なので,dxlib で描画するときは, この関数を使って左手座標系に変換する必要がある.
 
std::string ToString () const
 クォータニオンを文字列に変換する.
w, x, y, z の順で出力する.
 
std::string ToCsvString () const
 クォータニオンをCsv形式の文字列に変換する.カンマ区切り.
w, x, y, z の順にカンマ区切りで出力する.
 

静的公開メンバ関数

static Quaternion MakeByAngleAxis (float rad_angle, const Vector3 &axis)
 回転軸と回転角からクォータニオンを作成する.
q = cos(θ/2) * w + sin(θ/2) * { v.x + v.y + v.z } となる. ノルムは必ず1になる.
 

公開変数類

float w
 スカラー成分.
 
Vector3 v
 ベクトル成分.
 

詳解

クォータニオンを表す構造体.

クォータニオンは,スカラー成分とベクトル成分からなる. 四元数とも呼ばれる.

参考

math_quaternion.h37 行目に定義があります。

構築子と解体子

◆ Quaternion() [1/5]

constexpr designlab::Quaternion::Quaternion ( )
inlineconstexpr

1 + {0,0,0}で初期化する,

math_quaternion.h40 行目に定義があります。

◆ Quaternion() [2/5]

constexpr designlab::Quaternion::Quaternion ( const float  w_,
const float  x_,
const float  y_,
const float  z_ 
)
inlineconstexpr

スカラー成分とベクトル成分を指定して初期化する. ノルムが1になるように代入すること,
使用は非推奨,MakeByAngleAxisを使うこと.

引数
[in]w_スカラー成分.
[in]x_ベクトル成分のx成分.
[in]y_ベクトル成分のy成分.
[in]z_ベクトル成分のz成分.

math_quaternion.h49 行目に定義があります。

◆ Quaternion() [3/5]

constexpr designlab::Quaternion::Quaternion ( const float  w_,
const Vector3 v_ 
)
inlineconstexpr

スカラー成分とベクトル成分を指定して初期化する. ノルムが1になるように代入すること,
使用は非推奨,MakeByAngleAxisを使うこと.

引数
[in]w_スカラー成分.
[in]v_ベクトル成分.

math_quaternion.h59 行目に定義があります。

◆ Quaternion() [4/5]

constexpr designlab::Quaternion::Quaternion ( const Quaternion q)
constexprdefault

コピーコンストラクタ.

◆ Quaternion() [5/5]

constexpr designlab::Quaternion::Quaternion ( Quaternion &&  q)
constexprdefaultnoexcept

ムーブコンストラクタ.

関数詳解

◆ Dot()

constexpr float designlab::Quaternion::Dot ( Quaternion  other) const
inlineconstexprnoexcept

クォータニオンの内積を返す. クォータニオンを4次元のベクトルとみなし,ベクトルの内積を求める.

引数
[in]other内積を求めるクォータニオン.
戻り値
内積.

math_quaternion.h124 行目に定義があります。

呼び出し関係図:
被呼び出し関係図:

◆ GetConjugate()

constexpr Quaternion designlab::Quaternion::GetConjugate ( ) const
inlineconstexprnoexcept

クォータニオンの共役を返す. 共役なクォータニオンとは,ベクトル成分の符号を反転させたもの
q = w + xi + yj + zk とすると, qの共役は w - xi - yj - zk となる.回転は逆方向になる

戻り値
共役クォータニオン

math_quaternion.h135 行目に定義があります。

被呼び出し関係図:

◆ GetDistanceSquared()

constexpr float designlab::Quaternion::GetDistanceSquared ( const Quaternion q) const
inlineconstexprnoexcept

他のクォータニオンとの距離の2乗を返す. クォータニオンを4次元ベクトルとみなし,ベクトルの距離の2乗を求める.

戻り値
距離の2乗.

math_quaternion.h176 行目に定義があります。

呼び出し関係図:

◆ GetInverse()

Quaternion designlab::Quaternion::GetInverse ( ) const
inline

クォータニオンの逆数を返す.
クォータニオンqの逆数q^-1は,qの共役をノルムで割ったもの.
q^-1 = q* / |q|^2

戻り値
逆数.

math_quaternion.h161 行目に定義があります。

呼び出し関係図:

◆ GetLengthSquared()

constexpr float designlab::Quaternion::GetLengthSquared ( ) const
inlineconstexprnoexcept

クォータニオンの長さの2乗を返す(ノルムの2乗).
クォータニオンの長さの2乗は,w^2 + x^2 + y^2 + z^2 で求められる.

戻り値
長さの2乗.

math_quaternion.h141 行目に定義があります。

呼び出し関係図:
被呼び出し関係図:

◆ GetNorm()

float designlab::Quaternion::GetNorm ( ) const
inlinenoexcept

クォータニオンのノルムを返す.
ノルムとは,ベクトルの大きさのこと. クォータニオンのノルムは,w^2 + x^2 + y^2 + z^2 の平方根で求められる.

戻り値
ノルム.

math_quaternion.h151 行目に定義があります。

呼び出し関係図:
被呼び出し関係図:

◆ GetNormalized()

Quaternion designlab::Quaternion::GetNormalized ( ) const
noexcept

正規化したクォータニオンを返す.
クォータニオンの正規化とは,ノルムを1にすることを表す.
クォータニオンqの正規化は,q / |q| で求められる.

戻り値
正規化されたクォータニオン.

math_quaternion.cpp18 行目に定義があります。

呼び出し関係図:
被呼び出し関係図:

◆ MakeByAngleAxis()

Quaternion designlab::Quaternion::MakeByAngleAxis ( float  rad_angle,
const Vector3 axis 
)
static

回転軸と回転角からクォータニオンを作成する.
q = cos(θ/2) * w + sin(θ/2) * { v.x + v.y + v.z } となる. ノルムは必ず1になる.

引数
[in]rad_angle回転角θ [rad]
[in]axis回転軸.
戻り値
指定された回転軸周りに回転したクォータニオン.

math_quaternion.cpp31 行目に定義があります。

被呼び出し関係図:

◆ Normalize()

void designlab::Quaternion::Normalize ( )
inlinenoexcept

自身を正規化する.ノルムが1になる.

math_quaternion.h182 行目に定義があります。

呼び出し関係図:
被呼び出し関係図:

◆ operator!=()

bool designlab::Quaternion::operator!= ( const Quaternion q) const
inlinenoexcept

math_quaternion.h97 行目に定義があります。

◆ operator*() [1/2]

constexpr Quaternion designlab::Quaternion::operator* ( const float  s) const
inlineconstexprnoexcept

math_quaternion.h84 行目に定義があります。

◆ operator*() [2/2]

constexpr Quaternion designlab::Quaternion::operator* ( const Quaternion q) const
inlineconstexprnoexcept

math_quaternion.h80 行目に定義があります。

呼び出し関係図:

◆ operator+() [1/2]

constexpr Quaternion designlab::Quaternion::operator+ ( ) const
inlineconstexprnoexcept

math_quaternion.h70 行目に定義があります。

◆ operator+() [2/2]

constexpr Quaternion designlab::Quaternion::operator+ ( const Quaternion q) const
inlineconstexprnoexcept

math_quaternion.h72 行目に定義があります。

◆ operator-() [1/2]

constexpr Quaternion designlab::Quaternion::operator- ( ) const
inlineconstexprnoexcept

math_quaternion.h71 行目に定義があります。

◆ operator-() [2/2]

constexpr Quaternion designlab::Quaternion::operator- ( const Quaternion q) const
inlineconstexprnoexcept

math_quaternion.h76 行目に定義があります。

◆ operator/()

constexpr Quaternion designlab::Quaternion::operator/ ( const float  s) const
inlineconstexpr

math_quaternion.h88 行目に定義があります。

◆ operator<()

bool designlab::Quaternion::operator< ( const Quaternion q) const
inlinenoexcept

math_quaternion.h99 行目に定義があります。

◆ operator<=()

bool designlab::Quaternion::operator<= ( const Quaternion other) const
inlinenoexcept

math_quaternion.h108 行目に定義があります。

◆ operator=()

constexpr Quaternion & designlab::Quaternion::operator= ( const Quaternion q)
constexprdefault

コピー代入演算子.

◆ operator==()

bool designlab::Quaternion::operator== ( const Quaternion q) const
inlinenoexcept

math_quaternion.h93 行目に定義があります。

呼び出し関係図:

◆ operator>()

bool designlab::Quaternion::operator> ( const Quaternion other) const
inlinenoexcept

math_quaternion.h103 行目に定義があります。

◆ operator>=()

bool designlab::Quaternion::operator>= ( const Quaternion other) const
inlinenoexcept

math_quaternion.h113 行目に定義があります。

◆ ToCsvString()

std::string designlab::Quaternion::ToCsvString ( ) const

クォータニオンをCsv形式の文字列に変換する.カンマ区切り.
w, x, y, z の順にカンマ区切りで出力する.

戻り値
クォータニオンを表す文字列.

math_quaternion.cpp51 行目に定義があります。

◆ ToLeftHandCoordinate()

constexpr Quaternion designlab::Quaternion::ToLeftHandCoordinate ( ) const
inlineconstexprnoexcept

左手座標系への変換を行う.
言うまでもないが,機械工学では通例右手座標系を使う. しかし,dxlib は左手座標系なので,dxlib で描画するときは, この関数を使って左手座標系に変換する必要がある.

戻り値
左手座標系に変換されたクォータニオン.

math_quaternion.h189 行目に定義があります。

◆ ToString()

std::string designlab::Quaternion::ToString ( ) const

クォータニオンを文字列に変換する.
w, x, y, z の順で出力する.

戻り値
クォータニオンを表す文字列.

math_quaternion.cpp41 行目に定義があります。

呼び出し関係図:
被呼び出し関係図:

メンバ詳解

◆ v

Vector3 designlab::Quaternion::v

ベクトル成分.

math_quaternion.h215 行目に定義があります。

◆ w

float designlab::Quaternion::w

スカラー成分.

math_quaternion.h214 行目に定義があります。


この構造体詳解は次のファイルから抽出されました: