com.nttdocomo.opt.ui.j3d
クラス Vector3D

Object
  |
  +--com.nttdocomo.opt.ui.j3d.Vector3D

public class Vector3D
extends Object

3次元の固定小数点数ベクトルを表すクラスを定義します。
このベクトル各成分は1.0を4096にマッピングする固定小数点数として扱われます。 すなわち、normalize() によって正規化された後のベクトルの長さは4096になります。
各種の計算を行った際に、値がintの範囲を超えてオーバーフローが発生した場合の 結果は機種依存です。

端末によってサポートされていない場合があります。未サポートの場合、 メソッドが呼び出された時点でUnsupportedOperationExceptionを発生します。

導入されたバージョン:
DoJa-2.0

フィールドの概要
 int x
          ベクトルのx成分です。
 int y
          ベクトルのy成分です。
 int z
          ベクトルのz成分です。
 
コンストラクタの概要
Vector3D()
          ベクトルオブジェクトを生成します。
Vector3D(int x, int y, int z)
          ベクトルオブジェクトを要素を指定して生成します。
 
メソッドの概要
 void cross(Vector3D v)
          このベクトルと指定されたベクトルの外積を計算します。
 void cross(Vector3D u, Vector3D v)
          指定された2つのベクトルの外積を計算します。
 int dot(Vector3D v)
          このベクトルと、指定されたベクトルの内積を計算します。
static int dot(Vector3D v1, Vector3D v2)
          指定された2つのベクトルの内積を計算します。
 void normalize()
          このベクトルを正規化(単位ベクトル化)します。
 
クラス Object から継承したメソッド
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

フィールドの詳細

x

public int x
ベクトルのx成分です。


y

public int y
ベクトルのy成分です。


z

public int z
ベクトルのz成分です。

コンストラクタの詳細

Vector3D

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


Vector3D

public Vector3D(int x,
                int y,
                int z)
ベクトルオブジェクトを要素を指定して生成します。

パラメータ:
x - ベクトルのx成分を指定します。
y - ベクトルのy成分を指定します。
z - ベクトルのz成分を指定します。
メソッドの詳細

normalize

public void normalize()
このベクトルを正規化(単位ベクトル化)します。 単位ベクトルの長さは4096です。

例外:
ArithmeticException - このベクトルが零ベクトルの場合に発生します。

dot

public int dot(Vector3D v)
このベクトルと、指定されたベクトルの内積を計算します。 dot(this, v) を呼び出したのと同じ結果になります。

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

dot

public static int dot(Vector3D v1,
                      Vector3D v2)
指定された2つのベクトルの内積を計算します。 具体的には、以下のような計算を行います。
 v1.x * v2.x + v1.y * v2.y + v1.z * v2.z;
 

パラメータ:
v1 - 内積をとりたいベクトルを指定します。
v2 - 内積をとりたいベクトルを指定します。
戻り値:
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)
指定された2つのベクトルの外積を計算します。 (u × v)の結果を、このオブジェクトに設定します。 具体的には以下のような計算を行います。
 int x = u.y * v.z - u.z * v.y;
 int y = u.z * v.x - u.x * v.z;
 int z = u.x * v.y - u.y * v.x;
 this.x = x;
 this.y = y;
 this.z = z;
 

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


NTT DoCoMo,Inc.

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

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

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