|
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 の 80 行目に定義があります。

|
constexprnoexcept |
3辺で三角形が作れるか調べる関数.
| [in] | a | 1辺目. |
| [in] | b | 2辺目. |
| [in] | c | 3辺目. |
math_util.h の 65 行目に定義があります。

|
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 の 152 行目に定義があります。

| T designlab::math_util::GenerateRandomNumber | ( | T | min, |
| T | max | ||
| ) |
指定した範囲内の乱数を生成する.
| [in] | min | 乱数の最小値. |
| [in] | max | 乱数の最大値. |
| T | 算術型.int, float, doubleなど. |
math_util.h の 97 行目に定義があります。
|
constexprnoexcept |
C++において,小数同士の計算は誤差が出てしまう. 誤差込みで値が等しいか調べる.
| T | float か double のみを想定している. その他の型を使用する場合エラーが出る. |
| [in] | num1 | 比較する数字1つ目. |
| [in] | num2 | 比較する数字2つ目. |
| true | 等しい.または,誤差の範囲で等しい. |
| false | 等しくない.誤差の範囲外. |
math_util.h の 42 行目に定義があります。

| T designlab::math_util::LimitRangeAngleDeg | ( | T | angle | ) |
角度を -180° ~ 180° の範囲に収める関数.
| [in] | angle | 角度 [deg]. |
math_util.h の 128 行目に定義があります。

|
constexprnoexcept |
2乗した値を返す関数.
| T | float か double のみを想定している. その他の型を使用する場合エラーが出る. |
| [in] | num | 2乗する数. |
math_util.h の 55 行目に定義があります。

|
constexpr |
小数点以下の桁数.
math_util.h の 139 行目に定義があります。
|
constexpr |
文字列の幅.
math_util.h の 140 行目に定義があります。