GaitGeneration by Graph Search
|
基本的な計算を行う関数をまとめた名前空間. [詳解]
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 > | |
T | ApproachTarget (const T ¤t, const T &target, float rate) |
目標値に値を近づける関数. 描画用なので,線形でなく,適当に値を近づける. そのため,計算に使いたいなら作り直すこと. | |
template<Arithmetic T> | |
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> | |
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である. そのため,コンパイル時に計算が行われる.
T designlab::math_util::ApproachTarget | ( | const T & | current, |
const T & | target, | ||
float | rate | ||
) |
目標値に値を近づける関数. 描画用なので,線形でなく,適当に値を近づける. そのため,計算に使いたいなら作り直すこと.
[in] | current | 現在の値. |
[in] | target | 目標値. |
[in] | rate | 近づける割合.0 ~ 1の値を取る. |
math_util.h の 85 行目に定義があります。
|
constexprnoexcept |
3辺で三角形が作れるか調べる関数.
[in] | a | 1辺目. |
[in] | b | 2辺目. |
[in] | c | 3辺目. |
math_util.h の 68 行目に定義があります。
|
constexprnoexcept |
|
constexprnoexcept |
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 | 文字列の幅. |
T | float か double のみを想定している. その他の型を使用する場合エラーが出る. |
math_util.h の 161 行目に定義があります。
T designlab::math_util::GenerateRandomNumber | ( | T | min, |
T | max | ||
) |
指定した範囲内の乱数を生成する.
[in] | min | 乱数の最小値. |
[in] | max | 乱数の最大値. |
T | 算術型.int, float, doubleなど. |
math_util.h の 102 行目に定義があります。
|
constexprnoexcept |
C++において,小数同士の計算は誤差が出てしまう. 誤差込みで値が等しいか調べる.
T | float か double のみを想定している. その他の型を使用する場合エラーが出る. |
[in] | num1 | 比較する数字1つ目. |
[in] | num2 | 比較する数字2つ目. |
true | 等しい.または,誤差の範囲で等しい. |
false | 等しくない.誤差の範囲外. |
math_util.h の 45 行目に定義があります。
T designlab::math_util::LimitRangeAngleDeg | ( | T | angle | ) |
角度を -180° ~ 180° の範囲に収める関数.
[in] | angle | 角度 [deg]. |
math_util.h の 135 行目に定義があります。
|
constexprnoexcept |
2乗した値を返す関数.
T | float か double のみを想定している. その他の型を使用する場合エラーが出る. |
[in] | num | 2乗する数. |
math_util.h の 59 行目に定義があります。
|
constexpr |
小数点以下の桁数.
math_util.h の 148 行目に定義があります。
|
constexpr |
文字列の幅.
math_util.h の 149 行目に定義があります。