KisaragiLibrary
 
読み取り中…
検索中…
一致する文字列を見つけられません
Math クラス

汎用計算クラス [詳解]

#include <KisaragiMath.hpp>

静的公開メンバ関数

static double RadianToDegree (const double &_radian)
 ラジアン値を角度に変換する.
 
static double DegreeToRadian (const double &_degree)
 角度をラジアン値に変換する.
 
static double VectorToDegree (const double &_vecX, const double &_vecY)
 正規化された方向ベクトルから角度を求める.
 
static double VectorToRadian (const double &_vecX, const double &_vecY)
 正規化された方向ベクトルからラジアン値を求める.
 
template<class T>
static void Normalize (T *_vecX, T *_vecY)
 ベクトルを正規化する.
 
template<class T>
static T Pow (const T &_num, const unsigned int &_cnt)
 べき乗,累乗
 

詳解

汎用計算クラス

から
ver1.0.0 Vector2型(削除済み)の関数を削除し、Vector2Dに対応させたものをPrimitiveMath.hppに移動

関数詳解

◆ RadianToDegree()

static double Kisaragi_Lib::Math::RadianToDegree ( const double & _radian)
inlinestatic

ラジアン値を角度に変換する.

引数
_radianラジアン値
戻り値
角度
48 {
49 return (_radian * DEGREES_HALF / PI);
50 }

◆ DegreeToRadian()

static double Kisaragi_Lib::Math::DegreeToRadian ( const double & _degree)
inlinestatic

角度をラジアン値に変換する.

引数
_degree角度
戻り値
ラジアン値
58 {
59 return (_degree * PI / DEGREES_HALF);
60 }

◆ VectorToDegree()

static double Kisaragi_Lib::Math::VectorToDegree ( const double & _vecX,
const double & _vecY )
inlinestatic

正規化された方向ベクトルから角度を求める.

引数
_vecX正規化されたX方向のベクトル
_vecY正規化されたY方向のベクトル
戻り値
角度
69 {
70 return RadianToDegree(atan2(_vecY, _vecX));
71 }
static double RadianToDegree(const double &_radian)
ラジアン値を角度に変換する.
Definition KisaragiMath.hpp:47

◆ VectorToRadian()

static double Kisaragi_Lib::Math::VectorToRadian ( const double & _vecX,
const double & _vecY )
inlinestatic

正規化された方向ベクトルからラジアン値を求める.

引数
_vecX正規化されたX方向のベクトル
_vecY正規化されたY方向のベクトル
戻り値
ラジアン値
82 {
83 return atan2(_vecY, _vecX);
84 }

◆ Normalize()

template<class T>
static void Kisaragi_Lib::Math::Normalize ( T * _vecX,
T * _vecY )
inlinestatic

ベクトルを正規化する.

引数
_vecX正規化したいベクトル
_vecY正規化したいベクトル
95 {
96 double vecLength = sqrt((*_vecX * *_vecX) + (*_vecY * *_vecY));
97 //正規化されている(ベクトルの長さが1)なら.
98 if (vecLength == 1)
99 {
100 //処理しない
101 return;
102 }
103
104 //正規化処理.
105 if (*_vecX != 0)
106 {
107 *_vecX = (*_vecX / vecLength);
108 }
109
110 if (*_vecY != 0)
111 {
112 *_vecY = (*_vecY / vecLength);
113 }
114
115 }

◆ Pow()

template<class T>
static T Kisaragi_Lib::Math::Pow ( const T & _num,
const unsigned int & _cnt )
inlinestatic

べき乗,累乗

テンプレート引数
T計算したい型
引数
_num
_cnt回数
戻り値
べき乗の結果
127 {
128 //0以下は想定してないっす.
129 assert(_cnt > 0);
130
131 T tmp = _num;
132
133 //_cnt = 1の場合は代入だけして返すっす.
134 for (int i = 1; i < _cnt; i++)
135 {
136 tmp *= _num;
137 }
138
139 return tmp;
140 }

このクラス詳解は次のファイルから抽出されました: