com.nttdocomo.ui.util3d
クラス Vector3D

Object
  拡張com.nttdocomo.ui.util3d.Vector3D

public class Vector3D
extends Object

三次元のベクトルを表す、ベクトルクラスを定義します。 ベクトルの内容は、 3 個の float 型の値 (x 要素, y 要素, z 要素) です。

以下のメソッドによって

設定された float 値は、なんらかの演算が行われるまでの間、 その内容はまったく変わらずに保持されます。 具体的には、例えば setX(float) メソッドによって値 x を設定した直後に、 getX() メソッドによって取得した値 a を比較するとします。 そのとき、 x==a は常に真です。

導入されたバージョン:
DoJa-4.0 (901i)
関連項目:
数値演算に関する共通の定義

コンストラクタの概要
Vector3D()
           ベクトルオブジェクトを生成します。
Vector3D(float x, float y, float z)
           ベクトルオブジェクトを要素を指定して生成します。
Vector3D(Vector3D v)
           任意のベクトルオブジェクトの内容を完全に複製することで、 新規にベクトルオブジェクトを生成します。
 
メソッドの概要
 void add(float x, float y, float z)
           ベクトルに加算を行い、結果をこのオブジェクトに格納します。
 void add(Vector3D v)
           ベクトルの加算を行い、結果をこのオブジェクトに格納します。
 void cross(Vector3D v)
          このベクトルと指定されたベクトルの外積を計算します。
 void cross(Vector3D u, Vector3D v)
           指定された二つのベクトルの外積を計算して、 結果をこのオブジェクトに格納します。
 float dot(Vector3D v)
           このベクトルと、指定されたベクトルの内積を計算します。
static float dot(Vector3D v1, Vector3D v2)
           指定された二つのベクトルの内積を計算します。
 float getX()
           ベクトルの x 成分を取得します。
 float getY()
           ベクトルの y 成分を取得します。
 float getZ()
           ベクトルの z 成分を取得します。
 void normalize()
           このベクトルを正規化(単位ベクトル化)します。
 void set(float x, float y, float z)
           ベクトルの各成分を設定します。
 void set(Vector3D v)
           任意のベクトルオブジェクトの内容を完全に複製することで、 このベクトルオブジェクトの内容を再設定します。
 void setX(float x)
           ベクトルの x 成分を設定します。
 void setY(float y)
           ベクトルの y 成分を設定します。
 void setZ(float z)
           ベクトルの z 成分を設定します。
 
クラス Object から継承したメソッド
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

コンストラクタの詳細

Vector3D

public Vector3D()

ベクトルオブジェクトを生成します。要素は全て0に設定されます。


Vector3D

public Vector3D(Vector3D v)

任意のベクトルオブジェクトの内容を完全に複製することで、 新規にベクトルオブジェクトを生成します。

パラメータ:
v - ベクトルブジェクトを指定します。
例外:
NullPointerException - 引数 v が null の場合に発生します。

Vector3D

public Vector3D(float x,
                float y,
                float z)

ベクトルオブジェクトを要素を指定して生成します。

パラメータ:
x - ベクトルの x 成分を指定します。
y - ベクトルの y 成分を指定します。
z - ベクトルの z 成分を指定します。
例外:
IllegalArgumentException - 引数 x,y,z のいずれかに、 Float.NaN, Float.POSITIVE_INFINITY, Float.NEGATIVE_INFINITY のいずれかが指定された場合に発生します。
メソッドの詳細

set

public void set(float x,
                float y,
                float z)

ベクトルの各成分を設定します。

パラメータ:
x - ベクトルの x 成分を指定します。
y - ベクトルの y 成分を指定します。
z - ベクトルの z 成分を指定します。
例外:
IllegalArgumentException - 引数 x,y,z のいずれかに、 Float.NaN, Float.POSITIVE_INFINITY, Float.NEGATIVE_INFINITY のいずれかが指定された場合に発生します。

set

public void set(Vector3D v)

任意のベクトルオブジェクトの内容を完全に複製することで、 このベクトルオブジェクトの内容を再設定します。

パラメータ:
v - ベクトル オ ブジェクトを指定します。
例外:
NullPointerException - 引数 v が null の場合に発生します。

add

public void add(float x,
                float y,
                float z)

ベクトルに加算を行い、結果をこのオブジェクトに格納します。

具体的には、以下のような計算を行います。

   set(getX() + x, getY() + y, getZ() + z);
 

パラメータ:
x - ベクトルのx成分
y - ベクトルのy成分
z - ベクトルのz成分
例外:
IllegalArgumentException - 引数 x,y,z のいずれかに、 Float.NaN, Float.POSITIVE_INFINITY, Float.NEGATIVE_INFINITY のいずれかが指定された場合に発生します。

add

public void add(Vector3D v)

ベクトルの加算を行い、結果をこのオブジェクトに格納します。

具体的には、以下のような計算を行います。

   set(getX() + v.getX(), getY() + v.getY(), getZ() + v.getZ());
 

なお、 this と v が同一のオブジェクトが指している場合でも、 正しく計算が行われます。

パラメータ:
v - ベクトルオブジェクトを指定します。
例外:
NullPointerException - 引数 v が null の場合に発生します。

setX

public void setX(float x)

ベクトルの x 成分を設定します。

パラメータ:
x - x 成分の値を指定します。
例外:
IllegalArgumentException - 引数 x に、 Float.NaN, Float.POSITIVE_INFINITY, Float.NEGATIVE_INFINITY のいずれかが指定された場合に発生します。

setY

public void setY(float y)

ベクトルの y 成分を設定します。

パラメータ:
y - y 成分の値を指定します。
例外:
IllegalArgumentException - 引数 y に、 Float.NaN, Float.POSITIVE_INFINITY, Float.NEGATIVE_INFINITY のいずれかが指定された場合に発生します。

setZ

public void setZ(float z)

ベクトルの z 成分を設定します。

パラメータ:
z - z 成分の値を指定します。
例外:
IllegalArgumentException - 引数 z に、 Float.NaN, Float.POSITIVE_INFINITY, Float.NEGATIVE_INFINITY のいずれかが指定された場合に発生します。

getX

public float getX()

ベクトルの x 成分を取得します。

戻り値:
x 成分の値を返します。

getY

public float getY()

ベクトルの y 成分を取得します。

戻り値:
y 成分の値を返します。

getZ

public float getZ()

ベクトルの z 成分を取得します。

戻り値:
z 成分の値を返します。

normalize

public void normalize()

このベクトルを正規化(単位ベクトル化)します。

例外:
ArithmeticException - このベクトルが零ベクトルの場合に発生します。 また、ベクトルの内容を int 幅の値に変換したときに、 零ベクトルになる場合にも発生します。

dot

public float dot(Vector3D v)

このベクトルと、指定されたベクトルの内積を計算します。

dot(this, v) を呼び出したのと同じ結果になります。

パラメータ:
v - このベクトルと内積をとるベクトルを指定します。
戻り値:
内積の値を返します。
例外:
NullPointerException - 引数 v が null の場合に発生します。

dot

public static float dot(Vector3D v1,
                        Vector3D v2)

指定された二つのベクトルの内積を計算します。

具体的には、以下のような計算を行います。 v1.getX() * v2.getX() + v1.getY() * v2.getY() + v1.getZ() * v2.getZ();

パラメータ:
v1 - 内積をとるベクトルを指定します。
v2 - 内積をとるベクトルを指定します。
戻り値:
内積の値を返します。
例外:
NullPointerException - 引数 v1 または v2 が null の場合に発生します。

cross

public void cross(Vector3D v)
このベクトルと指定されたベクトルの外積を計算します。

cross(this, v) を呼び出したのと同じ結果になります。

なお、 this と v が同一のオブジェクトが指している場合でも、 正しく計算が行われます(この場合は零ベクトルが設定されます)。

パラメータ:
v - このベクトルと外積をとるベクトルを指定します。
例外:
NullPointerException - 引数 v が null の場合に発生します。

cross

public void cross(Vector3D u,
                  Vector3D v)

指定された二つのベクトルの外積を計算して、 結果をこのオブジェクトに格納します。

(u × v) の結果を、このオブジェクトに設定します。

具体的には、以下のような計算を行います。

   float x = u.getY() * v.getZ() - u.getZ() * v.getY();
   float y = u.getZ() * v.getX() - u.getX() * v.getZ();
   float z = u.getX() * v.getY() - u.getY() * v.getX();
   set(x, y, z);
 

なお、 this と v1 が同一のオブジェクトが指している場合、 this と v2 が同一のオブジェクトが指している場合、 あるいは、v1 と v2 が共に this を指している場合、 いずれの場合でも正しく計算が行われます。

パラメータ:
u - 外積をとるベクトルを指定します。
v - 外積をとるベクトルを指定します。
例外:
NullPointerException - 引数 u または v が null の場合に発生します。


NTT DOCOMO,INC.

本製品または文書は著作権法により保護されており、その使用、複製、再頒布および逆コンパイルを制限するライセンスのもとにおいて頒布されます。NTTドコモ(その他に許諾者がある場合は当該許諾者も含めて)の書面による事前の許可なく、本製品および関連する文書のいかなる部分も、いかなる方法によっても複製することが禁じられます。フォントを含む第三者のソフトウェアは、著作権法により保護されており、その提供者からライセンスを受けているものです。

Sun、Sun Microsystems、Java、J2MEおよびJ2SEは、米国およびその他の国における米国 Sun Microsystems,Inc.の商標または登録商標です。サンのロゴマークは、米国 Sun Microsystems, Inc.の登録商標です。

FeliCaは、ソニー株式会社が開発した非接触ICカードの技術方式です。FeliCaは、ソニー株式会社の登録商標です。

「iモード」、「iアプリ/アイアプリ」、「i-αppli」ロゴ、「DoJa」はNTTドコモの商標または登録商標です。

その他記載された会社名、製品名などは該当する各社の商標または登録商標です。