mqsdx  310.0.1
MQPluginSDK Extention Library / mqsdkをC++またはCLI(.Net)拡張するサポートライブラリ
 全て クラス 関数 変数 型定義 プロパティ グループ ページ
MQ0x-Math名前空間

関数

template<typename T >
MQ0x::Math::Ceil (T src)
 ceiling関数 [詳細]
 
template<typename T >
MQ0x::Math::Clamp (T src, T min, T max)
 クランプ計算 [詳細]
 
template<typename T >
MQ0x::Math::Clamp01 (T src)
 0〜1クランプ計算 [詳細]
 
template<typename T >
MQ0x::Math::Deg2Rad ()
 度数からラジアン角(弧度)に変換 [詳細]
 
template<typename T >
MQ0x::Math::Deg2Rad (T degree)
 度数からラジアン角(弧度)に変換 [詳細]
 
template<typename T >
MQ0x::Math::Floor (T src)
 floor関数 [詳細]
 
template<typename T >
MQ0x::Math::Lerp (T from, T to, T t)
 線形補間 (Linear interpolation) [詳細]
 
template<typename T >
MQ0x::Math::MoveTo (T from, T to, T mov)
 現在の値から目標の値まで指定量移動します。 [詳細]
 
template<typename T >
MQ0x::Math::Pi ()
 PI. [詳細]
 
template<typename T >
MQ0x::Math::Rad2Deg ()
 ラジアン角(弧度)から度数に変換 [詳細]
 
template<typename T >
MQ0x::Math::Rad2Deg (T degree)
 ラジアン角(弧度)から度数に変換 [詳細]
 
template<typename T >
MQ0x::Math::Repeat (T t, T length)
 循環丸め [詳細]
 
template<typename T >
MQ0x::Math::Trunc (T src)
 truncate計算。 [詳細]
 

説明

数値計算のためのライブラリ。名前空間MathはMQ0xでusing宣言されているので省略可能です。

double truncated = MQ0x::trunc(1.2);

関数

template<typename T >
T MQ0x::Math::Ceil ( src)
inline

ceiling関数

覚え書き
浮動小数点以外の整数値型にも対応するceilです。整数の時はsrcの値をそのまま返します。11仕様を満たす std::ceil() が無い環境で利用してください。
template<typename T >
T MQ0x::Math::Clamp ( src,
min,
max 
)
inline

クランプ計算

srcがmin〜maxの外にある場合、srcを両端で飽和させてmin以上max以下におさめます。

template<typename T >
T MQ0x::Math::Clamp01 ( src)
inline

0〜1クランプ計算

srcが0〜1の外にある場合、srcを両端で飽和させて0以上1以下におさめます。

参照元 MQ0x::HSV< T >::toNormalized().

template<typename T >
T MQ0x::Math::Deg2Rad ( )
inline

度数からラジアン角(弧度)に変換

float d = 180.0f; // as degree
float rd = d * Deg2Rad<float>(); // to radian
template<typename T >
T MQ0x::Math::Deg2Rad ( degree)
inline

度数からラジアン角(弧度)に変換

float rad = Deg2Rad<float>(180.0f); // convert 180.0 degree into radian
template<typename T >
T MQ0x::Math::Floor ( src)
inline

floor関数

覚え書き
浮動小数点以外の整数値型にも対応するfloorです。整数の時はsrcの値をそのまま返します。11仕様を満たす std::floor() が無い環境で利用してください。
template<typename T >
T MQ0x::Math::Lerp ( from,
to,
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 ( from,
to,
mov 
)
inline

現在の値から目標の値まで指定量移動します。

fromからtoへ向かってmovだけ移動します。movが大きくてもtoを追い越す事はなくtoで止まります。

template<typename T >
T MQ0x::Math::Pi ( )
inline

PI.

戻り値
PIを返します。
template<typename T >
T MQ0x::Math::Rad2Deg ( )
inline

ラジアン角(弧度)から度数に変換

float rd = 2.0f * Pi<float>(); // as radian
float d = rd * Rad2Deg<float>(); // to degree

参照元 MQ0x::Math::Rad2Deg().

template<typename T >
T MQ0x::Math::Rad2Deg ( degree)
inline

ラジアン角(弧度)から度数に変換

float deg = Rad2Deg<float>(2.0f * pi<float>()); // convert 2 * PI (radian) into degree
template<typename T >
T MQ0x::Math::Repeat ( t,
length 
)
inline

循環丸め

戻り値
tを循環する値として、tを0〜絶対値(length)に丸めた値を返します。例えば、Repeat(380.0,360.0)は20.0を返します。
template<typename T >
T MQ0x::Math::Trunc ( src)
inline

truncate計算。

覚え書き
VC2010に std::trunc() が搭載されていないので実装しています。 std::trunc() がある環境ならそちらを使うべきです。