GaitGeneration by Graph Search
読み取り中…
検索中…
一致する文字列を見つけられません
Concepts | 関数 | 変数
designlab::math_util 名前空間

基本的な計算を行う関数をまとめた名前空間. [詳解]

Concepts

concept  Arithmetic
 

関数

template<::std::floating_point T>
constexpr bool IsEqual (const T num1, const T num2) noexcept
 C++において,小数同士の計算は誤差が出てしまう. 誤差込みで値が等しいか調べる.
 
template<Arithmetic T>
constexpr T Squared (const T num) noexcept
 2乗した値を返す関数.
 
template<Arithmetic T>
constexpr bool CanMakeTriangle (const T a, const T b, const T c) noexcept
 3辺で三角形が作れるか調べる関数.
 
template<typename T >
ApproachTarget (const T &current, const T &target, float rate)
 目標値に値を近づける関数. 描画用なので,線形でなく,適当に値を近づける. そのため,計算に使いたいなら作り直すこと.
 
template<Arithmetic T>
GenerateRandomNumber (T min, T max)
 指定した範囲内の乱数を生成する.
 
template<::std::floating_point T>
constexpr T ConvertRadToDeg (const T rad) noexcept
 角度を [rad]から [deg] に変換する関数.
 
template<::std::floating_point T>
constexpr T ConvertDegToRad (const T deg) noexcept
 角度を [deg] から [rad] に変換する関数.
 
template<::std::floating_point T>
LimitRangeAngleDeg (T angle)
 角度を -180° ~ 180° の範囲に収める関数.
 
template<::std::floating_point T>
std::string FloatingPointNumToString (const T num, const int digit=kDigit, const int width=kWidth)
 小数を文字列に変換する関数.
C++ では C のフォーマットのように %3.3f とかで小数を文字列に変換できないため自作する.
 

変数

constexpr int kDigit = 3
 小数点以下の桁数.
 
constexpr int kWidth = 10
 文字列の幅.
 

詳解

基本的な計算を行う関数をまとめた名前空間.

この名前空間にある関数は,基本的に constexprである. そのため,コンパイル時に計算が行われる.

関数詳解

◆ ApproachTarget()

template<typename T >
T designlab::math_util::ApproachTarget ( const T &  current,
const T &  target,
float  rate 
)

目標値に値を近づける関数. 描画用なので,線形でなく,適当に値を近づける. そのため,計算に使いたいなら作り直すこと.

引数
[in]current現在の値.
[in]target目標値.
[in]rate近づける割合.0 ~ 1の値を取る.
戻り値
近づけた値.

math_util.h85 行目に定義があります。

被呼び出し関係図:

◆ CanMakeTriangle()

template<Arithmetic T>
constexpr bool designlab::math_util::CanMakeTriangle ( const T  a,
const T  b,
const T  c 
)
constexprnoexcept

3辺で三角形が作れるか調べる関数.

引数
[in]a1辺目.
[in]b2辺目.
[in]c3辺目.
戻り値
三角形が作れるならば true.

math_util.h68 行目に定義があります。

被呼び出し関係図:

◆ ConvertDegToRad()

template<::std::floating_point T>
constexpr T designlab::math_util::ConvertDegToRad ( const T  deg)
constexprnoexcept

角度を [deg] から [rad] に変換する関数.

引数
[in]deg角度[deg].
戻り値
角度[rad].

math_util.h126 行目に定義があります。

被呼び出し関係図:

◆ ConvertRadToDeg()

template<::std::floating_point T>
constexpr T designlab::math_util::ConvertRadToDeg ( const T  rad)
constexprnoexcept

角度を [rad]から [deg] に変換する関数.

引数
[in]rad単位 [rad].
戻り値
単位 [deg].

math_util.h117 行目に定義があります。

被呼び出し関係図:

◆ FloatingPointNumToString()

template<::std::floating_point T>
std::string designlab::math_util::FloatingPointNumToString ( const T  num,
const int  digit = kDigit,
const int  width = kWidth 
)

小数を文字列に変換する関数.
C++ では C のフォーマットのように %3.3f とかで小数を文字列に変換できないため自作する.

引数
[in]num変換する小数.
[in]digit小数点以下の桁数.
[in]width文字列の幅.
戻り値
変換した文字列.
テンプレート引数
Tfloat か double のみを想定している. その他の型を使用する場合エラーが出る.

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

被呼び出し関係図:

◆ GenerateRandomNumber()

template<Arithmetic T>
T designlab::math_util::GenerateRandomNumber ( min,
max 
)

指定した範囲内の乱数を生成する.

引数
[in]min乱数の最小値.
[in]max乱数の最大値.
戻り値
生成した乱数.
テンプレート引数
T算術型.int, float, doubleなど.

math_util.h102 行目に定義があります。

被呼び出し関係図:

◆ IsEqual()

template<::std::floating_point T>
constexpr bool designlab::math_util::IsEqual ( const T  num1,
const T  num2 
)
constexprnoexcept

C++において,小数同士の計算は誤差が出てしまう. 誤差込みで値が等しいか調べる.

テンプレート引数
Tfloat か double のみを想定している. その他の型を使用する場合エラーが出る.
引数
[in]num1比較する数字1つ目.
[in]num2比較する数字2つ目.
戻り値
true等しい.または,誤差の範囲で等しい.
false等しくない.誤差の範囲外.

math_util.h45 行目に定義があります。

被呼び出し関係図:

◆ LimitRangeAngleDeg()

template<::std::floating_point T>
T designlab::math_util::LimitRangeAngleDeg ( angle)

角度を -180° ~ 180° の範囲に収める関数.

引数
[in]angle角度 [deg].
戻り値
角度 [-180°, 180°).

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

被呼び出し関係図:

◆ Squared()

template<Arithmetic T>
constexpr T designlab::math_util::Squared ( const T  num)
constexprnoexcept

2乗した値を返す関数.

テンプレート引数
Tfloat か double のみを想定している. その他の型を使用する場合エラーが出る.
引数
[in]num2乗する数.
戻り値
T 2乗した値.

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

被呼び出し関係図:

変数詳解

◆ kDigit

constexpr int designlab::math_util::kDigit = 3
constexpr

小数点以下の桁数.

math_util.h148 行目に定義があります。

◆ kWidth

constexpr int designlab::math_util::kWidth = 10
constexpr

文字列の幅.

math_util.h149 行目に定義があります。