|
||||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
Object | +--com.nttdocomo.opt.ui.j3d.AffineTrans
3次元アフィン変換用の行列を扱うクラスを定義します。
このクラスのインスタンスをGraphics3D.setViewTrans(AffineTrans)
にて設定することにより、
物体の回転や、視点変換行列の初期化を行うことができます。
なお、このクラスには、
移動や拡大/縮小をサポートするメソッドは陽に定義されていません。
これらの操作の代替手段として、
以下のスクリーン変換メソッドを使うことが想定されています。
フィールドの概要 | |
int |
m00
1 行 1 列の要素です。 |
int |
m01
1 行 2 列の要素です。 |
int |
m02
1 行 3 列の要素です。 |
int |
m03
1 行 4 列の要素です。 |
int |
m10
2 行 1 列の要素です。 |
int |
m11
2 行 2 列の要素です。 |
int |
m12
2 行 3 列の要素です。 |
int |
m13
2 行 4 列の要素です。 |
int |
m20
3 行 1 列の要素です。 |
int |
m21
3 行 2 列の要素です。 |
int |
m22
3 行 3 列の要素です。 |
int |
m23
3 行 4 列の要素です。 |
コンストラクタの概要 | |
AffineTrans()
空の行列を生成します。 |
|
AffineTrans(int a00,
int a01,
int a02,
int a03,
int a10,
int a11,
int a12,
int a13,
int a20,
int a21,
int a22,
int a23)
要素を指定して行列を生成します。 |
メソッドの概要 | |
void |
lookAt(Vector3D position,
Vector3D look,
Vector3D up)
視点座標への変換となるように行列の要素を設定します。 |
void |
mul(AffineTrans t)
変換行列の積 (this × t) を計算して、結果をこのオブジェクトに設定します。 |
void |
mul(AffineTrans t1,
AffineTrans t2)
変換行列の積 (t1 × t2) を計算して、結果をこのオブジェクトに設定します。 |
void |
setColumn(int column,
int x,
int y,
int z)
この行列の指定された列の要素を設定します。 |
void |
setElement(int row,
int column,
int value)
この行列の指定された要素を設定します。 |
void |
setElement(int a00,
int a01,
int a02,
int a03,
int a10,
int a11,
int a12,
int a13,
int a20,
int a21,
int a22,
int a23)
行列の要素を設定します。 |
void |
setIdentity()
恒等変換となるように行列の要素を設定します。 |
void |
setRotateV(Vector3D v,
int a)
右手系の座標系において、 指定されたベクトル中心の回転変換となるように行列の要素を設定します。 |
void |
setRotateX(int a)
右手系の座標系において、 x軸中心の回転変換となるように行列の要素を設定します。 |
void |
setRotateY(int a)
右手系の座標系において、 y軸中心の回転変換となるように行列の要素を設定します。 |
void |
setRotateZ(int a)
右手系の座標系において、 z軸中心の回転変換となるように行列の要素を設定します。 |
void |
setRow(int row,
int x,
int y,
int z,
int w)
この行列の指定された行の要素を設定します。 |
void |
transform(Vector3D v,
Vector3D result)
点の座標を表すベクトルを、この変換行列で変換して、 結果を別のベクトルに格納します。 |
クラス Object から継承したメソッド |
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
フィールドの詳細 |
public int m00
public int m01
public int m02
public int m03
public int m10
public int m11
public int m12
public int m13
public int m20
public int m21
public int m22
public int m23
コンストラクタの詳細 |
public AffineTrans()
public AffineTrans(int a00, int a01, int a02, int a03, int a10, int a11, int a12, int a13, int a20, int a21, int a22, int a23)
a00
- 1 行 1 列の要素を指定します。a01
- 1 行 2 列の要素を指定します。a02
- 1 行 3 列の要素を指定します。a03
- 1 行 4 列の要素を指定します。a10
- 2 行 1 列の要素を指定します。a11
- 2 行 2 列の要素を指定します。a12
- 2 行 3 列の要素を指定します。a13
- 2 行 4 列の要素を指定します。a20
- 3 行 1 列の要素を指定します。a21
- 3 行 2 列の要素を指定します。a22
- 3 行 3 列の要素を指定します。a23
- 3 行 4 列の要素を指定します。メソッドの詳細 |
public void setElement(int row, int column, int value)
row
- 要素を設定する、0から始まる行番号を指定します。column
- 要素を設定する、0から始まる列番号を指定します。value
- 第(row + 1)行第(column + 1)列に設定する値を指定します。
ArrayIndexOutOfBoundsException
- row や column が範囲外の値の場合に発生します。
public void setElement(int a00, int a01, int a02, int a03, int a10, int a11, int a12, int a13, int a20, int a21, int a22, int a23)
a00
- 1 行 1 列の要素を指定します。a01
- 1 行 2 列の要素を指定します。a02
- 1 行 3 列の要素を指定します。a03
- 1 行 4 列の要素を指定します。a10
- 2 行 1 列の要素を指定します。a11
- 2 行 2 列の要素を指定します。a12
- 2 行 3 列の要素を指定します。a13
- 2 行 4 列の要素を指定します。a20
- 3 行 1 列の要素を指定します。a21
- 3 行 2 列の要素を指定します。a22
- 3 行 3 列の要素を指定します。a23
- 3 行 4 列の要素を指定します。public void setRow(int row, int x, int y, int z, int w)
row
- 要素を設定する、0から始まる行番号を指定します。x
- 指定された行の第1列に設定する値を指定します。y
- 指定された行の第2列に設定する値を指定します。z
- 指定された行の第3列に設定する値を指定します。w
- 指定された行の第4列に設定する値を指定します。
ArrayIndexOutOfBoundsException
- row に 0 から 2 以外の値が指定された時に発生します。
public void setColumn(int column, int x, int y, int z)
column
- 要素を設定する、0から始まる列番号を指定します。x
- 指定された列の第1行に設定する値を指定します。y
- 指定された列の第2行に設定する値を指定します。z
- 指定された列の第3行に設定する値を指定します。
ArrayIndexOutOfBoundsException
- column に 0 から 3 以外の値が指定された時に発生します。
public void setIdentity()
public void mul(AffineTrans t)
t
- 乗数となる変換行列を指定します。
NullPointerException
- 引数 t に null が指定された場合に発生します。
public void mul(AffineTrans t1, AffineTrans t2)
int a00 = ((t1.m00 * t2.m00 + t1.m01 * t2.m10 + t1.m02 * t2.m20 + 2048) >> 12); int a01 = ((t1.m00 * t2.m01 + t1.m01 * t2.m11 + t1.m02 * t2.m21 + 2048) >> 12); int a02 = ((t1.m00 * t2.m02 + t1.m01 * t2.m12 + t1.m02 * t2.m22 + 2048) >> 12); int a03 = ((t1.m00 * t2.m03 + t1.m01 * t2.m13 + t1.m02 * t2.m23 + 2048) >> 12) + t1.m03; int a10 = ((t1.m10 * t2.m00 + t1.m11 * t2.m10 + t1.m12 * t2.m20 + 2048) >> 12); int a11 = ((t1.m10 * t2.m01 + t1.m11 * t2.m11 + t1.m12 * t2.m21 + 2048) >> 12); int a12 = ((t1.m10 * t2.m02 + t1.m11 * t2.m12 + t1.m12 * t2.m22 + 2048) >> 12); int a13 = ((t1.m10 * t2.m03 + t1.m11 * t2.m13 + t1.m12 * t2.m23 + 2048) >> 12) + t1.m13; int a20 = ((t1.m20 * t2.m00 + t1.m21 * t2.m10 + t1.m22 * t2.m20 + 2048) >> 12); int a21 = ((t1.m20 * t2.m01 + t1.m21 * t2.m11 + t1.m22 * t2.m21 + 2048) >> 12); int a22 = ((t1.m20 * t2.m02 + t1.m21 * t2.m12 + t1.m22 * t2.m22 + 2048) >> 12); int a23 = ((t1.m20 * t2.m03 + t1.m21 * t2.m13 + t1.m22 * t2.m23 + 2048) >> 12) + t1.m23; this.m00 = a00; this.m01 = a01; this.m02 = a02; this.m03 = a03; this.m10 = a10; this.m11 = a11; this.m12 = a12; this.m13 = a13; this.m20 = a20; this.m21 = a21; this.m22 = a22; this.m23 = a23;
t1
- 被乗数となる変換行列を指定します。t2
- 乗数となる変換行列を指定します。
NullPointerException
- 引数 t1 または t2 に null が指定された場合に発生します。
public void setRotateX(int a)
a
- 角度を4096 分円単位(2πラジアンで 4096)で指定します。public void setRotateY(int a)
a
- 角度を4096 分円単位(2πラジアンで 4096)で指定します。public void setRotateZ(int a)
a
- 角度を4096 分円単位(2πラジアンで 4096)で指定します。public void setRotateV(Vector3D v, int a)
v
- 回転の中心となるベクトルを指定します。
単位ベクトルである必要はありません。a
- 角度を4096 分円単位(2πラジアンで 4096)で指定します。
NullPointerException
- 引数 v に null が指定された場合に発生します。
public void lookAt(Vector3D position, Vector3D look, Vector3D up)
position
- 視点への位置ベクトルを指定します。look
- 参照点への位置ベクトルを指定します。up
- Upベクトルを指定します。
NullPointerException
- 引数 position、look、または up に null が指定された場合に発生します。
IllegalArgumentException
- 引数 up が零ベクトルの場合に発生します。
IllegalArgumentException
- 引数 look と position が等しい場合、
引数 (look - position) と up が平行な場合に発生します。
public void transform(Vector3D v, Vector3D result)
v
- 点の座標を表すベクトルを指定します。result
- 変換結果を格納するベクトルを指定します。
NullPointerException
- 引数 v または result に null が指定された場合に発生します。
|
||||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
NTT DoCoMo,Inc.
本製品または文書は著作権法により保護されており、その使用、複製、再頒布および逆コンパイルを制限するライセンスのもとにおいて頒布されます。NTTドコモ(その他に許諾者がある場合は当該許諾者も含めて)の書面による事前の許可なく、本製品および関連する文書のいかなる部分も、いかなる方法によっても複製することが禁じられます。フォントを含む第三者のソフトウェアは、著作権法により保護されており、その提供者からライセンスを受けているものです。
Sun、Sun Microsystems、Java、J2MEおよびJ2SEは、米国およびその他の国における米国 Sun Microsystems,Inc.の商標または登録商標です。サンのロゴマークは、米国 Sun Microsystems, Inc.の登録商標です。
「iモード」、「iアプリ/アイアプリ」、「i-αppli」ロゴ、「DoJa」はNTTドコモの商標または登録商標です。