Public 型 | Public メソッド | 変数
クラス テンプレート mist::vector2< T >

2次元ベクトルを扱うクラス [詳細]

#include <vector.h>

Public 型

typedef T value_type
 MISTのコンテナ内に格納するデータ型.mist::array< data > の data と同じ
typedef size_t size_type
 符号なしの整数を表す型.コンテナ内の要素数や,各要素を指定するときなどに利用し,内部的には size_t 型と同じ
typedef ptrdiff_t difference_type
 符号付きの整数を表す型.コンテナ内の要素数や,各要素を指定するときなどに利用し,内部的には ptrdiff_t 型と同じ
typedef float_type< T >::value_type float_type
 長さなどを計算するときに用いる浮動小数点型

Public メソッド

 vector2 ()
 デフォルトコンストラクタ.( 0, 0 ) に初期化する
 vector2 (const value_type &xx, const value_type &yy)
 ( xx, yy ) のベクトルを作成する
 vector2 (const value_type &vv)
 ( vv, vv ) のベクトルを作成する
template<class TT >
 vector2 (const vector2< TT > &v)
 他の2次元ベクトルで要素の型が異なるものから同じ要素を持つベクトルを作成する
 vector2 (const vector2< T > &v)
 他の2次元ベクトルで同じ要素型のものを用いて初期化する
template<class TT >
const vector2operator= (const vector2< TT > &v)
 他のデータ型の2次元ベクトルを代入する
const vector2operator= (const vector2< T > &v)
 他の2次元ベクトルを代入する
vector2 operator- () const
 符号反転したベクトルを返す
template<class TT >
vector2operator+= (const vector2< TT > &v)
 ベクトル和
template<class TT >
vector2operator-= (const vector2< TT > &v)
 ベクトル差
template<class TT >
vector2operator*= (const TT &a)
 ベクトルの定数倍
template<class TT >
vector2operator/= (const TT &a)
 ベクトルを定数で割る
bool operator== (const vector2 &v) const
 2つのベクトルが等しい(全要素が同じ値を持つ)かどうかを判定する
bool operator!= (const vector2 &v) const
 2つのベクトルが等しくない(どれか1つでも異なる要素を持つ)かどうかを判定する
bool operator< (const vector2 &v) const
 2つのベクトルの < を判定する
bool operator<= (const vector2 &v) const
 2つのベクトルの <= を判定する
bool operator> (const vector2 &v) const
 2つのベクトルの > を判定する
bool operator>= (const vector2 &v) const
 2つのベクトルの >= を判定する
vector2 unit () const
 単位ベクトルを計算する
template<class TT >
promote_trait< T, TT >::value_type inner (const vector2< TT > &v) const
 ベクトルの内積を計算する
template<class TT >
promote_trait< T, TT >::value_type outer (const vector2< TT > &v) const
 ベクトルの外積を計算する
float_type length () const
 ベクトルの大きさを計算する

変数

value_type x
 X軸座標値
value_type y
 Y軸座標値

説明

template<class T>
class mist::vector2< T >

2次元ベクトルを扱うクラス

ベクトルの内積・外積等を簡便に扱うためのクラス

引数
T… ベクトル内に各座標を表すデータ型

コンストラクタとデストラクタ

template<class T>
template<class TT >
mist::vector2< T >::vector2 ( const vector2< TT > &  v)
inline

他の2次元ベクトルで要素の型が異なるものから同じ要素を持つベクトルを作成する

注意
異なる要素型間でデータの変換が可能でなくてはならない

関数

template<class T>
template<class TT >
promote_trait< T, TT >::value_type mist::vector2< T >::inner ( const vector2< TT > &  v) const
inline

ベクトルの内積を計算する

\[ \mbox{\boldmath p} \cdot \mbox{\boldmath q} = p_x \times q_x + p_y \times q_y \]

引数
[in]v… 右辺値
template<class T>
float_type mist::vector2< T >::length ( ) const
inline

ベクトルの大きさを計算する

\[ \left\|\mbox{\boldmath v}\right\| = \sqrt{v_x^2+v_y^2} \]

戻り値
ベクトルの大きさ

参照元 mist::track_ball().

template<class T>
bool mist::vector2< T >::operator!= ( const vector2< T > &  v) const
inline

2つのベクトルが等しくない(どれか1つでも異なる要素を持つ)かどうかを判定する

\[ \mbox{\boldmath p} \neq \mbox{\boldmath q} \rightarrow \overline{ p_x = q_x \; \wedge \; p_y = q_y } \]

引数
[in]v… 右辺値
戻り値
true… 2つのベクトルが異なる場合
false… 2つのベクトルが等しい場合
template<class T>
bool mist::vector2< T >::operator< ( const vector2< T > &  v) const
inline

2つのベクトルの < を判定する

\[ \mbox{\boldmath p} \ge \mbox{\boldmath q} \rightarrow \overline{ p_x \ge q_x \; \wedge \; p_y \ge q_y } \]

引数
[in]v… 右辺値
戻り値
true… v1 < v2 の場合
false… v1 >= v2 の場合
template<class T>
bool mist::vector2< T >::operator<= ( const vector2< T > &  v) const
inline

2つのベクトルの <= を判定する

\[ \mbox{\boldmath p} \ge \mbox{\boldmath q} \rightarrow p_x \le q_x \; \wedge \; p_y \le q_y \]

引数
[in]v… 右辺値
戻り値
true… v1 <= v2 の場合
false… v1 > v2 の場合
template<class T>
template<class TT >
const vector2& mist::vector2< T >::operator= ( const vector2< TT > &  v)
inline

他のデータ型の2次元ベクトルを代入する

コピー元であるベクトル v と全く同じベクトルを作成する.

引数
[in]v… コピー元のベクトル
戻り値
自分自身
template<class T>
const vector2& mist::vector2< T >::operator= ( const vector2< T > &  v)
inline

他の2次元ベクトルを代入する

コピー元であるベクトル v と全く同じベクトルを作成する.

引数
[in]v… コピー元のベクトル
戻り値
自分自身
template<class T>
bool mist::vector2< T >::operator== ( const vector2< T > &  v) const
inline

2つのベクトルが等しい(全要素が同じ値を持つ)かどうかを判定する

\[ \mbox{\boldmath p} = \mbox{\boldmath q} \rightarrow p_x = q_x \; \wedge \; p_y = q_y \]

引数
[in]v… 右辺値
戻り値
true… 2つのベクトルが等しい場合
false… 2つのベクトルが異なる場合
template<class T>
bool mist::vector2< T >::operator> ( const vector2< T > &  v) const
inline

2つのベクトルの > を判定する

\[ \mbox{\boldmath p} \ge \mbox{\boldmath q} \rightarrow \overline{ p_x \le q_x \; \wedge \; p_y \le q_y } \]

引数
[in]v… 右辺値
戻り値
true… v1 > v2 の場合
false… v1 <= v2 の場合
template<class T>
bool mist::vector2< T >::operator>= ( const vector2< T > &  v) const
inline

2つのベクトルの >= を判定する

\[ \mbox{\boldmath p} \ge \mbox{\boldmath q} \rightarrow p_x \ge q_x \; \wedge \; p_y \ge q_y \]

引数
[in]v… 右辺値
戻り値
true… v1 >= v2 の場合
false… v1 < v2 の場合
template<class T>
template<class TT >
promote_trait< T, TT >::value_type mist::vector2< T >::outer ( const vector2< TT > &  v) const
inline

ベクトルの外積を計算する

\[ \mbox{\boldmath p} \times \mbox{\boldmath q} = p_x \times q_y - p_y \times q_x \]

引数
[in]v… 右辺値
template<class T>
vector2 mist::vector2< T >::unit ( ) const
inline

単位ベクトルを計算する

\[ \frac{\mbox{\boldmath v}}{\left\|\mbox{\boldmath v}\right\|} \]


このクラスの説明は次のファイルから生成されました:

Generated on Wed Nov 12 2014 19:44:29 for MIST by doxygen 1.8.1.2