数値計算のためのライブラリ。名前空間MathはMQ0xでusing宣言されているので省略可能です。
double truncated = MQ0x::trunc(1.2);
template<typename T >
T MQ0x::Math::Ceil |
( |
T |
src) | |
|
|
inline |
ceiling関数
- 覚え書き
- 浮動小数点以外の整数値型にも対応するceilです。整数の時はsrcの値をそのまま返します。11仕様を満たす std::ceil() が無い環境で利用してください。
template<typename T >
T MQ0x::Math::Clamp |
( |
T |
src, |
|
|
T |
min, |
|
|
T |
max |
|
) |
| |
|
inline |
クランプ計算
srcがmin〜maxの外にある場合、srcを両端で飽和させてmin以上max以下におさめます。
template<typename T >
T MQ0x::Math::Clamp01 |
( |
T |
src) | |
|
|
inline |
template<typename T >
T MQ0x::Math::Deg2Rad |
( |
) | |
|
|
inline |
度数からラジアン角(弧度)に変換
float d = 180.0f;
float rd = d * Deg2Rad<float>();
template<typename T >
T MQ0x::Math::Deg2Rad |
( |
T |
degree) | |
|
|
inline |
度数からラジアン角(弧度)に変換
float rad = Deg2Rad<float>(180.0f);
template<typename T >
T MQ0x::Math::Floor |
( |
T |
src) | |
|
|
inline |
floor関数
- 覚え書き
- 浮動小数点以外の整数値型にも対応するfloorです。整数の時はsrcの値をそのまま返します。11仕様を満たす std::floor() が無い環境で利用してください。
template<typename T >
T MQ0x::Math::Lerp |
( |
T |
from, |
|
|
T |
to, |
|
|
T |
t |
|
) |
| |
|
inline |
線形補間 (Linear interpolation)
- 戻り値
- tが0の時はfrom、tが1の時はtoを返し、tが0.5の時はfromとtoの平均値を返します。tはclamp処理によって0〜1に丸められます。
template<typename T >
T MQ0x::Math::MoveTo |
( |
T |
from, |
|
|
T |
to, |
|
|
T |
mov |
|
) |
| |
|
inline |
現在の値から目標の値まで指定量移動します。
fromからtoへ向かってmovだけ移動します。movが大きくてもtoを追い越す事はなくtoで止まります。
template<typename T >
T MQ0x::Math::Rad2Deg |
( |
) | |
|
|
inline |
ラジアン角(弧度)から度数に変換
float rd = 2.0f * Pi<float>();
float d = rd * Rad2Deg<float>();
参照元 MQ0x::Math::Rad2Deg().
template<typename T >
T MQ0x::Math::Rad2Deg |
( |
T |
degree) | |
|
|
inline |
ラジアン角(弧度)から度数に変換
float deg = Rad2Deg<float>(2.0f * pi<float>());
template<typename T >
T MQ0x::Math::Repeat |
( |
T |
t, |
|
|
T |
length |
|
) |
| |
|
inline |
循環丸め
- 戻り値
- tを循環する値として、tを0〜絶対値(length)に丸めた値を返します。例えば、Repeat(380.0,360.0)は20.0を返します。
template<typename T >
T MQ0x::Math::Trunc |
( |
T |
src) | |
|
|
inline |
truncate計算。
- 覚え書き
- VC2010に std::trunc() が搭載されていないので実装しています。 std::trunc() がある環境ならそちらを使うべきです。