|
JavaTM 2 Platform Std. Ed. v1.4.0 |
||||||||||
前のクラス 次のクラス | フレームあり フレームなし | ||||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
java.lang.Object | +--java.awt.geom.AffineTransform
AffineTransform
クラスは、線の直線性と平行性を保ったままで 2 次元座標間の線形マッピングを実行する 2 次元アフィン変換を表現します。アフィン変換は、一連の平行移動、スケーリング、反転、回転、変形により構成されます。
このような座標変換は、暗黙に指定された [ 0 0 1 ] という最終行を持つ 3 行× 3 列の行列によって表現できます。この行列は、次の処理に従って、座標を列ベクトルと見なし、座標ベクトルを行列で乗算することによって、転送元座標 (x, y)
を転送先座標 (x', y')
に変換します。
[ x'] [ m00 m01 m02 ] [ x ] [ m00x + m01y + m02 ] [ y'] = [ m10 m11 m12 ] [ y ] = [ m10x + m11y + m12 ] [ 1 ] [ 0 0 1 ] [ 1 ] [ 1 ]
フィールドの概要 | |
static int |
TYPE_FLIP
このフラグビットは、このオブジェクトによって定義される変換が、ほかのフラグビットによって指定される変換に加えて、ある軸を中心とする鏡像反転を実行することを示します。 |
static int |
TYPE_GENERAL_ROTATION
このフラグビットは、このオブジェクトによって定義される変換が、ほかのフラグビットによって指定される変換に加えて、任意の角度による回転を実行することを示します。 |
static int |
TYPE_GENERAL_SCALE
このフラグビットは、このオブジェクトによって定義される変換が、ほかのフラグビットによって指定される変換に加えて、汎用的なスケーリングを実行することを示します。 |
static int |
TYPE_GENERAL_TRANSFORM
この定数は、このオブジェクトによって定義される変換が、入力座標の任意の変換を実行することを示します。 |
static int |
TYPE_IDENTITY
この定数は、このオブジェクトによって定義される変換が恒等変換であることを示します。 |
static int |
TYPE_MASK_ROTATION
この定数は、回転フラグビットのどれかのビットマスクです。 |
static int |
TYPE_MASK_SCALE
この定数は、スケールフラグビットのどれかのビットマスクです。 |
static int |
TYPE_QUADRANT_ROTATION
このフラグビットは、このオブジェクトによって定義される変換が、ほかのフラグビットによって指定される変換に加えて、90 度の倍数で四分円回転を実行することを示します。 |
static int |
TYPE_TRANSLATION
このフラグビットは、このオブジェクトによって定義される変換が、ほかのフラグビットによって指定される変換に加えて、1 つの移動を実行することを示します。 |
static int |
TYPE_UNIFORM_SCALE
このフラグビットは、このオブジェクトによって定義される変換が、ほかのフラグビットによって指定される変換に加えて、一様なスケーリングを実行することを示します。 |
コンストラクタの概要 | |
AffineTransform()
恒等変換を表現する新しい AffineTransform を構築します。 |
|
AffineTransform(AffineTransform Tx)
指定された AffineTransform オブジェクトのコピーである、新しい AffineTransform を構築します。 |
|
AffineTransform(double[] flatmatrix)
3×3 変換行列の 4 つの非平行移動エントリまたは 6 つの指定可能エントリのどちらかを表現する倍精度値の配列から、新しい AffineTransform を構築します。 |
|
AffineTransform(double m00,
double m10,
double m01,
double m11,
double m02,
double m12)
3×3 変換行列の 6 つの指定可能エントリを表現する 6 つの倍精度値から、新しい AffineTransform を構築します。 |
|
AffineTransform(float[] flatmatrix)
3×3 変換行列の 4 つの非平行移動エントリまたは 6 つの指定可能エントリのどちらかを表現する浮動小数点値の配列から、新しい AffineTransform を構築します。 |
|
AffineTransform(float m00,
float m10,
float m01,
float m11,
float m02,
float m12)
3×3 変換行列の 6 つの指定可能エントリを表現する 6 つの浮動小数点値から、新しい AffineTransform を構築します。 |
メソッドの概要 | |
Object |
clone()
この AffineTransform オブジェクトのコピーを返します。 |
void |
concatenate(AffineTransform Tx)
Tx によって元のユーザ空間にマップされた新しいユーザ空間を提供するためにもっとも一般的に使用される方法で、AffineTransform Tx をこの AffineTransform Cx に連結します。 |
AffineTransform |
createInverse()
逆変換を表現する AffineTransform オブジェクトを返します。 |
Shape |
createTransformedShape(Shape pSrc)
指定された Shape をこの変換によって変換し、その Shape のジオメトリによって定義される新しい Shape オブジェクトを返します。 |
void |
deltaTransform(double[] srcPts,
int srcOff,
double[] dstPts,
int dstOff,
int numPts)
この変換によって相対的な距離ベクトルの配列を変換します。 |
Point2D |
deltaTransform(Point2D ptSrc,
Point2D ptDst)
ptSrc によって指定される相対的な距離ベクトルを変換し、その結果を ptDst に格納します。 |
boolean |
equals(Object obj)
この AffineTransform が、指定された引数と同じアフィン座標変換を表現する場合に true を返します。 |
double |
getDeterminant()
変換の行列表現の行列式を返します。 |
void |
getMatrix(double[] flatmatrix)
3×3 アフィン変換行列内の 6 つの指定可能な値を取り出し、倍精度値の配列に配置します。 |
static AffineTransform |
getRotateInstance(double theta)
回転変換を表現する変換を返します。 |
static AffineTransform |
getRotateInstance(double theta,
double x,
double y)
アンカーポイントを中心にして座標を回転させる変換を返します。 |
static AffineTransform |
getScaleInstance(double sx,
double sy)
スケーリング変換を表現する変換を返します。 |
double |
getScaleX()
3×3 アフィン変換行列の X 座標スケーリング要素 (m00) を返します。 |
double |
getScaleY()
3×3 アフィン変換行列の Y 座標スケーリング要素 (m11) を返します。 |
static AffineTransform |
getShearInstance(double shx,
double shy)
シャーリング変換を表現する変換を返します。 |
double |
getShearX()
3×3 アフィン変換行列の X 座標シャーリング要素 (m01) を返します。 |
double |
getShearY()
3×3 アフィン変換行列の Y 座標シャーリング要素 (m10) を返します。 |
static AffineTransform |
getTranslateInstance(double tx,
double ty)
平行移動変換を表現する変換を返します。 |
double |
getTranslateX()
3×3 アフィン変換行列の平行移動要素 (m02) の X 座標を返します。 |
double |
getTranslateY()
3×3 アフィン変換行列の平行移動要素 (m12) の Y 座標を返します。 |
int |
getType()
この変換の変換プロパティを記述するフラグビットを返します。 |
int |
hashCode()
この変換のハッシュコードを返します。 |
void |
inverseTransform(double[] srcPts,
int srcOff,
double[] dstPts,
int dstOff,
int numPts)
この変換によって倍精度の座標の配列を逆変換します。 |
Point2D |
inverseTransform(Point2D ptSrc,
Point2D ptDst)
指定された ptSrc を逆変換して、その結果を ptDst に格納します。 |
boolean |
isIdentity()
この AffineTransform が恒等変換である場合に true を返します。 |
void |
preConcatenate(AffineTransform Tx)
Tx が既存のユーザ空間ではなく絶対ピクセル空間を基準にして座標変換を変更するなど一般にはあまり使用されない方法で、AffineTransform Tx をこの AffineTransform Cx に連結します。 |
void |
rotate(double theta)
この変換を回転変換に連結します。 |
void |
rotate(double theta,
double x,
double y)
この変換を、アンカーポイントを中心にして座標を回転する変換と連結します。 |
void |
scale(double sx,
double sy)
この変換をスケーリング変換に連結します。 |
void |
setToIdentity()
この変換を恒等変換に設定し直します。 |
void |
setToRotation(double theta)
この変換を回転変換に設定します。 |
void |
setToRotation(double theta,
double x,
double y)
この変換を平行移動後の回転変換に設定します。 |
void |
setToScale(double sx,
double sy)
この変換をスケーリング変換に設定します。 |
void |
setToShear(double shx,
double shy)
この変換をシャーリング変換に設定します。 |
void |
setToTranslation(double tx,
double ty)
この変換を平行移動変換に設定します。 |
void |
setTransform(AffineTransform Tx)
この変換を、指定された AffineTransform オブジェクト内の変換のコピーに設定します。 |
void |
setTransform(double m00,
double m10,
double m01,
double m11,
double m02,
double m12)
この変換を 6 つの倍精度値によって指定されている行列に設定します。 |
void |
shear(double shx,
double shy)
この変換をシャーリング変換に連結します。 |
String |
toString()
この Object の値を表現する String を返します。 |
void |
transform(double[] srcPts,
int srcOff,
double[] dstPts,
int dstOff,
int numPts)
この変換によって、倍精度の座標の配列を変換します。 |
void |
transform(double[] srcPts,
int srcOff,
float[] dstPts,
int dstOff,
int numPts)
この変換によって倍精度の座標の配列を変換し、結果を float 値の配列に格納します。 |
void |
transform(float[] srcPts,
int srcOff,
double[] dstPts,
int dstOff,
int numPts)
この変換によって浮動小数点の座標の配列を変換し、結果を double 値の配列に格納します。 |
void |
transform(float[] srcPts,
int srcOff,
float[] dstPts,
int dstOff,
int numPts)
この変換によって、浮動小数点の座標の配列を変換します。 |
void |
transform(Point2D[] ptSrc,
int srcOff,
Point2D[] ptDst,
int dstOff,
int numPts)
この変換によってポイントオブジェクトの配列を変換します。 |
Point2D |
transform(Point2D ptSrc,
Point2D ptDst)
指定された ptSrc を変換して、その結果を ptDst に格納します。 |
void |
translate(double tx,
double ty)
この変換を平行移動変換に連結します。 |
クラス java.lang.Object から継承したメソッド |
finalize, getClass, notify, notifyAll, wait, wait, wait |
フィールドの詳細 |
public static final int TYPE_IDENTITY
TYPE_TRANSLATION
,
TYPE_UNIFORM_SCALE
,
TYPE_GENERAL_SCALE
,
TYPE_FLIP
,
TYPE_QUADRANT_ROTATION
,
TYPE_GENERAL_ROTATION
,
TYPE_GENERAL_TRANSFORM
,
getType()
,
定数フィールド値public static final int TYPE_TRANSLATION
TYPE_IDENTITY
,
TYPE_UNIFORM_SCALE
,
TYPE_GENERAL_SCALE
,
TYPE_FLIP
,
TYPE_QUADRANT_ROTATION
,
TYPE_GENERAL_ROTATION
,
TYPE_GENERAL_TRANSFORM
,
getType()
,
定数フィールド値public static final int TYPE_UNIFORM_SCALE
TYPE_IDENTITY
,
TYPE_TRANSLATION
,
TYPE_GENERAL_SCALE
,
TYPE_FLIP
,
TYPE_QUADRANT_ROTATION
,
TYPE_GENERAL_ROTATION
,
TYPE_GENERAL_TRANSFORM
,
getType()
,
定数フィールド値public static final int TYPE_GENERAL_SCALE
TYPE_IDENTITY
,
TYPE_TRANSLATION
,
TYPE_UNIFORM_SCALE
,
TYPE_FLIP
,
TYPE_QUADRANT_ROTATION
,
TYPE_GENERAL_ROTATION
,
TYPE_GENERAL_TRANSFORM
,
getType()
,
定数フィールド値public static final int TYPE_MASK_SCALE
TYPE_UNIFORM_SCALE
,
TYPE_GENERAL_SCALE
,
定数フィールド値public static final int TYPE_FLIP
TYPE_IDENTITY
,
TYPE_TRANSLATION
,
TYPE_UNIFORM_SCALE
,
TYPE_GENERAL_SCALE
,
TYPE_QUADRANT_ROTATION
,
TYPE_GENERAL_ROTATION
,
TYPE_GENERAL_TRANSFORM
,
getType()
,
定数フィールド値public static final int TYPE_QUADRANT_ROTATION
TYPE_IDENTITY
,
TYPE_TRANSLATION
,
TYPE_UNIFORM_SCALE
,
TYPE_GENERAL_SCALE
,
TYPE_FLIP
,
TYPE_GENERAL_ROTATION
,
TYPE_GENERAL_TRANSFORM
,
getType()
,
定数フィールド値public static final int TYPE_GENERAL_ROTATION
TYPE_IDENTITY
,
TYPE_TRANSLATION
,
TYPE_UNIFORM_SCALE
,
TYPE_GENERAL_SCALE
,
TYPE_FLIP
,
TYPE_QUADRANT_ROTATION
,
TYPE_GENERAL_TRANSFORM
,
getType()
,
定数フィールド値public static final int TYPE_MASK_ROTATION
TYPE_QUADRANT_ROTATION
,
TYPE_GENERAL_ROTATION
,
定数フィールド値public static final int TYPE_GENERAL_TRANSFORM
TYPE_IDENTITY
,
TYPE_TRANSLATION
,
TYPE_UNIFORM_SCALE
,
TYPE_GENERAL_SCALE
,
TYPE_FLIP
,
TYPE_QUADRANT_ROTATION
,
TYPE_GENERAL_ROTATION
,
getType()
,
定数フィールド値コンストラクタの詳細 |
public AffineTransform()
AffineTransform
を構築します。
public AffineTransform(AffineTransform Tx)
AffineTransform
オブジェクトのコピーである、新しい AffineTransform
を構築します。
Tx
- コピーする AffineTransform
オブジェクトpublic AffineTransform(float m00, float m10, float m01, float m11, float m02, float m12)
AffineTransform
を構築します。
public AffineTransform(float[] flatmatrix)
AffineTransform
を構築します。各値は、配列から { m00 m10 m01 m11 [m02 m12]} という形式で取り出されます。
flatmatrix
- 新しい AffineTransform
オブジェクトに設定される各値を格納している float 値の配列。配列の長さは、4 以上であることが前提。配列の長さが 6 より小さい場合、最初の 4 つの値だけが取得される。配列の長さが 6 より大きい場合、最初の 6 つの値が取得されるpublic AffineTransform(double m00, double m10, double m01, double m11, double m02, double m12)
AffineTransform
を構築します。
public AffineTransform(double[] flatmatrix)
AffineTransform
を構築します。各値は、配列から { m00 m10 m01 m11 [m02 m12]} という形式で取り出されます。
flatmatrix
- 新しい AffineTransform
オブジェクトに設定される各値を格納している double 値の配列。配列の長さは、4 以上であることが前提。配列の長さが 6 より小さい場合、最初の 4 つの値だけが取得される。配列の長さが 6 より大きい場合、最初の 6 つの値が取得されるメソッドの詳細 |
public static AffineTransform getTranslateInstance(double tx, double ty)
[ 1 0 tx ] [ 0 1 ty ] [ 0 0 1 ]
tx
- 座標が X 軸方向で平行移動される距離ty
- 座標が Y 軸方向で平行移動される距離
AffineTransform
オブジェクトpublic static AffineTransform getRotateInstance(double theta)
[ cos(theta) -sin(theta) 0 ] [ sin(theta) cos(theta) 0 ] [ 0 0 1 ]正の角度 theta で回転すると、正の x 軸の点が正の y 軸に向かって回転されます。
theta
- ラジアンで表した回転角度
AffineTransform
オブジェクトpublic static AffineTransform getRotateInstance(double theta, double x, double y)
この操作は、次の一連の呼び出しに相当します。
AffineTransform Tx = new AffineTransform(); Tx.setToTranslation(x, y); // S3: final translation Tx.rotate(theta); // S2: rotate around anchor Tx.translate(-x, -y); // S1: translate anchor to origin返される変換の行列表現は、次のようになります。
[ cos(theta) -sin(theta) x-x*cos+y*sin ] [ sin(theta) cos(theta) y-x*sin-y*cos ] [ 0 0 1 ]正の角度 theta で回転すると、正の x 軸の点が正の y 軸に向かって回転されます。
theta
- ラジアンで表した回転角度
AffineTransform
オブジェクトpublic static AffineTransform getScaleInstance(double sx, double sy)
[ sx 0 0 ] [ 0 sy 0 ] [ 0 0 1 ]
sx
- 座標を X 軸方向にスケーリングするために使う係数sy
- 座標を Y 軸方向にスケーリングするために使う係数
AffineTransform
オブジェクトpublic static AffineTransform getShearInstance(double shx, double shy)
[ 1 shx 0 ] [ shy 1 0 ] [ 0 0 1 ]
shx
- Y 座標の係数で座標を正の X 軸の方向に移動するために使う乗数shy
- X 座標の係数で座標を正の Y 軸の方向に移動するために使う乗数
AffineTransform
オブジェクトpublic int getType()
TYPE_IDENTITY
,
TYPE_TRANSLATION
,
TYPE_UNIFORM_SCALE
,
TYPE_GENERAL_SCALE
,
TYPE_QUADRANT_ROTATION
,
TYPE_GENERAL_ROTATION
,
TYPE_GENERAL_TRANSFORM
public double getDeterminant()
行列式がゼロでない場合、この変換には逆変換が存在し、逆変換に依存するさまざまなメソッドは NoninvertibleTransformException
をスローする必要がありません。行列式がゼロの場合、この変換はすべての入力座標を線または点にマップするので逆変換できません。行列式が十分にゼロに近い場合、逆変換オペレーションは意味のある結果を出せるだけの精度を確保できない場合があります。
getType
メソッドで示されるように、この変換が一様なスケーリングを表現する場合、行列式はすべての点が原点を基準に拡張または縮小される一様なスケーリング係数の 2 乗を表します。この変換が一様でないスケーリングまたはより汎用的な変換を表現する場合、行列式が表す値は、逆変換が可能かどうかを判定するためだけに使用できます。
算術的に、行列式は次の公式で計算されます。
| m00 m01 m02 | | m10 m11 m12 | = m00 * m11 - m01 * m10 | 0 0 1 |
getType()
,
createInverse()
,
inverseTransform(java.awt.geom.Point2D, java.awt.geom.Point2D)
,
TYPE_UNIFORM_SCALE
public void getMatrix(double[] flatmatrix)
flatmatrix
- 戻り値を格納するために使用する double 値の配列getScaleX()
,
getScaleY()
,
getShearX()
,
getShearY()
,
getTranslateX()
,
getTranslateY()
public double getScaleX()
getMatrix(double[])
public double getScaleY()
getMatrix(double[])
public double getShearX()
getMatrix(double[])
public double getShearY()
getMatrix(double[])
public double getTranslateX()
getMatrix(double[])
public double getTranslateY()
getMatrix(double[])
public void translate(double tx, double ty)
AffineTransform
です。
[ 1 0 tx ] [ 0 1 ty ] [ 0 0 1 ]
tx
- 座標が X 軸方向で平行移動される距離ty
- 座標が Y 軸方向で平行移動される距離public void rotate(double theta)
AffineTransform
です。
[ cos(theta) -sin(theta) 0 ] [ sin(theta) cos(theta) 0 ] [ 0 0 1 ]正の角度 theta で回転すると、正の x 軸の点が正の y 軸に向かって回転されます。
theta
- ラジアンで表した回転角度public void rotate(double theta, double x, double y)
この操作は、次の一連の呼び出しに相当します。
translate(x, y); // S3: final translation rotate(theta); // S2: rotate around anchor translate(-x, -y); // S1: translate anchor to origin正の角度 theta で回転すると、正の x 軸の点が正の y 軸に向かって回転されます。
theta
- ラジアンで表した回転角度public void scale(double sx, double sy)
AffineTransform
です。
[ sx 0 0 ] [ 0 sy 0 ] [ 0 0 1 ]
sx
- 座標を X 軸方向にスケーリングするために使う係数sy
- 座標を Y 軸方向にスケーリングするために使う係数public void shear(double shx, double shy)
AffineTransform
です。
[ 1 shx 0 ] [ shy 1 0 ] [ 0 0 1 ]
shx
- Y 座標の係数で座標を正の X 軸の方向に移動するために使う乗数shy
- X 座標の係数で座標を正の Y 軸の方向に移動するために使う乗数public void setToIdentity()
public void setToTranslation(double tx, double ty)
[ 1 0 tx ] [ 0 1 ty ] [ 0 0 1 ]
tx
- 座標が X 軸方向で平行移動される距離ty
- 座標が Y 軸方向で平行移動される距離public void setToRotation(double theta)
[ cos(theta) -sin(theta) 0 ] [ sin(theta) cos(theta) 0 ] [ 0 0 1 ]正の角度 theta で回転すると、正の x 軸の点が正の y 軸に向かって回転されます。
theta
- ラジアンで表した回転角度public void setToRotation(double theta, double x, double y)
この操作は、次の一連の呼び出しに相当します。
setToTranslation(x, y); // S3: final translation rotate(theta); // S2: rotate around anchor translate(-x, -y); // S1: translate anchor to originこの変換を表現する行列は次のようになります。
[ cos(theta) -sin(theta) x-x*cos+y*sin ] [ sin(theta) cos(theta) y-x*sin-y*cos ] [ 0 0 1 ]正の角度 theta で回転すると、正の x 軸の点が正の y 軸に向かって回転されます。
theta
- ラジアンで表した回転角度public void setToScale(double sx, double sy)
[ sx 0 0 ] [ 0 sy 0 ] [ 0 0 1 ]
sx
- 座標を X 軸方向にスケーリングするために使う係数sy
- 座標を Y 軸方向にスケーリングするために使う係数public void setToShear(double shx, double shy)
[ 1 shx 0 ] [ shy 1 0 ] [ 0 0 1 ]
shx
- Y 座標の係数で座標を正の X 軸の方向に移動するために使う乗数shy
- X 座標の係数で座標を正の Y 軸の方向に移動するために使う乗数public void setTransform(AffineTransform Tx)
AffineTransform
オブジェクト内の変換のコピーに設定します。
Tx
- 変換のコピー元の AffineTransform
オブジェクトpublic void setTransform(double m00, double m10, double m01, double m11, double m02, double m12)
public void concatenate(AffineTransform Tx)
Tx
によって元のユーザ空間にマップされた新しいユーザ空間を提供するためにもっとも一般的に使用される方法で、AffineTransform
Tx
をこの AffineTransform
Cx に連結します。Cx を更新すると、結合された変換を実行できます。更新された変換 Cx' で点 p を変換することは、最初に Tx
で p を変換してから、その結果を元の変換 Cx で変換することに相当します。つまり、Cx'(p) = Cx(Tx(p)) です。行列表記では、この変換 Cx が行列 [this] で表現され、Tx
が行列 [Tx] で表現される場合、このメソッドは次の処理を行います。
[this] = [this] x [Tx]
Tx
- この AffineTransform
オブジェクトに連結される AffineTransform
オブジェクトpreConcatenate(java.awt.geom.AffineTransform)
public void preConcatenate(AffineTransform Tx)
Tx
が既存のユーザ空間ではなく絶対ピクセル空間を基準にして座標変換を変更するなど一般にはあまり使用されない方法で、AffineTransform
Tx
をこの AffineTransform
Cx に連結します。Cx を更新すると、結合された変換を実行できます。更新された変換 Cx' で点 p を変換することは、最初に元の変換 Cx で p を変換してから、その結果を Tx
で変換することに相当します。つまり、Cx'(p) = Tx(Cx(p)) です。行列表記では、この変換 Cx が行列 [this] で表現され、Tx
が行列 [Tx] で表現される場合、このメソッドは次の処理を行います。
[this] = [Tx] x [this]
Tx
- この AffineTransform
オブジェクトに連結される AffineTransform
オブジェクトconcatenate(java.awt.geom.AffineTransform)
public AffineTransform createInverse() throws NoninvertibleTransformException
AffineTransform
オブジェクトを返します。この変換 Tx の逆変換 Tx' は、Tx によって変換された座標をその元の座標にマップして戻します。つまり、Tx'(Tx(p)) = p = Tx(Tx'(p)) です。
この変換がすべての座標を点や線にマップする場合、変換は逆写像を持ちません。これは、転送先の点や線にない座標が逆写像を持たないためです。getDeterminant
メソッドを使うと、この変換が逆写像を持つかどうかを判定できます。この変換が逆写像を持たない場合、createInverse
メソッドが呼び出されると、例外がスローされます。
AffineTransform
オブジェクト
NoninvertibleTransformException
- 行列を反転できない場合getDeterminant()
public Point2D transform(Point2D ptSrc, Point2D ptDst)
ptSrc
を変換して、その結果を ptDst
に格納します。ptDst
が null
の場合、新しい Point2D
オブジェクトが割り当てられてから、変換の結果がこのオブジェクトに格納されます。どちらの場合も、便宜上、変換後の点を格納している ptDst
が返されます。ptSrc
と ptDst
が同じオブジェクトの場合、入力点は変換後の点で適切に上書きされます。
ptSrc
- 変換対象の指定された Point2D
ptDst
- ptSrc
の変換結果を格納している指定された Point2D
ptSrc
を変換し、結果を ptDst
に格納したあとの ptDst
public void transform(Point2D[] ptSrc, int srcOff, Point2D[] ptDst, int dstOff, int numPts)
ptDst
配列の要素のどれかが null
であれば、新しい Point2D
オブジェクトが割り当てられ、変換の結果が格納される前にその要素に格納されます。
ただし、このメソッドは、転送元配列に置かれて計算の転送元として使用される Point2D
オブジェクトに結果を格納することによって引き起こされる問題を避けるための予防措置をとっていません。このメソッドは、指定された Point2D
オブジェクトが同じ 1 つの点の変換オペレーションの転送元と転送先の両方である場合、オペランドの上に結果が格納されないように、結果を計算の終了後まで格納しないことを保証します。しかし、転送先 Point2D
オブジェクトがほかのオペレーションの転送元配列に置かれて転送元 Point2D
オブジェクトとなる場合、その点の元の座標は変換可能になる前に上書きされます。
ptSrc
- 転送元のポイントオブジェクトが格納されている配列ptDst
- 変換されたポイントオブジェクトが格納される配列srcOff
- 転送元配列での変換される最初のポイントオブジェクトへのオフセットdstOff
- 最初のポイントオブジェクトが格納される転送先配列内の位置へのオフセットnumPts
- 変換されるポイントオブジェクトの数public void transform(float[] srcPts, int srcOff, float[] dstPts, int dstOff, int numPts)
[x0, y0, x1, y1, ..., xn, yn]
という順序で格納されます。
srcPts
- 転送元の点座標が返されている配列。各点は x, y 座標のペアとして格納されるdstPts
- 変換された点座標が返される配列。各点は x, y 座標のペアとして格納されるsrcOff
- 転送元配列での変換される最初の点へのオフセットdstOff
- 最初のポイントオブジェクトが格納される転送先配列内の位置へのオフセットnumPts
- 変換される点の数public void transform(double[] srcPts, int srcOff, double[] dstPts, int dstOff, int numPts)
[x0, y0, x1, y1, ..., xn, yn]
という順序で格納されます。
srcPts
- 転送元の点座標が返されている配列。各点は x, y 座標のペアとして格納されるdstPts
- 変換された点座標が返される配列。各点は x, y 座標のペアとして格納されるsrcOff
- 転送元配列での変換される最初の点へのオフセットdstOff
- 最初のポイントオブジェクトが格納される転送先配列内の位置へのオフセットnumPts
- 変換されるポイントオブジェクトの数public void transform(float[] srcPts, int srcOff, double[] dstPts, int dstOff, int numPts)
[x0, y0, x1, y1, ..., xn, yn]
という順序で格納されます。
srcPts
- 転送元の点座標が返されている配列。各点は x, y 座標のペアとして格納されるdstPts
- 変換された点座標が返される配列。各点は x, y 座標のペアとして格納されるsrcOff
- 転送元配列での変換される最初の点へのオフセットdstOff
- 最初のポイントオブジェクトが格納される転送先配列内の位置へのオフセットnumPts
- 変換される点の数public void transform(double[] srcPts, int srcOff, float[] dstPts, int dstOff, int numPts)
[x0, y0, x1, y1, ..., xn, yn]
という順序で格納されます。
srcPts
- 転送元の点座標が返されている配列。各点は x, y 座標のペアとして格納されるdstPts
- 変換された点座標が返される配列。各点は x, y 座標のペアとして格納されるsrcOff
- 転送元配列での変換される最初の点へのオフセットdstOff
- 最初のポイントオブジェクトが格納される転送先配列内の位置へのオフセットnumPts
- 変換されるポイントオブジェクトの数public Point2D inverseTransform(Point2D ptSrc, Point2D ptDst) throws NoninvertibleTransformException
ptSrc
を逆変換して、その結果を ptDst
に格納します。ptDst
が null
の場合、新しい Point2D
オブジェクトが割り当てられてから、変換の結果がこのオブジェクトに格納されます。どちらの場合も、便宜上、変換後の点を格納している ptDst
が返されます。ptSrc
と ptDst
が同じオブジェクトの場合、入力点は変換後の点で適切に上書きされます。
ptSrc
- 逆変換される点ptDst
- 結果として生成される変換後の点
ptDst
NoninvertibleTransformException
- 行列を反転できない場合public void inverseTransform(double[] srcPts, int srcOff, double[] dstPts, int dstOff, int numPts) throws NoninvertibleTransformException
[x0, y0, x1, y1, ..., xn, yn]
という順序で格納されます。
srcPts
- 転送元の点座標が返されている配列。各点は x, y 座標のペアとして格納されるdstPts
- 変換された点座標が返される配列。各点は x, y 座標のペアとして格納されるsrcOff
- 転送元配列での変換される最初の点へのオフセットdstOff
- 最初のポイントオブジェクトが格納される転送先配列内の位置へのオフセットnumPts
- 変換されるポイントオブジェクトの数
NoninvertibleTransformException
- 行列を反転できない場合public Point2D deltaTransform(Point2D ptSrc, Point2D ptDst)
ptSrc
によって指定される相対的な距離ベクトルを変換し、その結果を ptDst
に格納します。相対的距離ベクトルは、アフィン変換行列の平行移動コンポーネントを適用することなく、次の式を使って変換されます。
[ x' ] [ m00 m01 (m02) ] [ x ] [ m00x + m01y ] [ y' ] = [ m10 m11 (m12) ] [ y ] = [ m10x + m11y ] [ (1) ] [ (0) (0) ( 1 ) ] [ (1) ] [ (1) ]
ptDst
が null
の場合、新しい Point2D
オブジェクトが割り当てられてから、変換の結果がこのオブジェクトに格納されます。どちらの場合も、便宜上、変換後の点を格納している ptDst
が返されます。ptSrc
と ptDst
が同じオブジェクトの場合、入力点は変換後の点で適切に上書きされます。
ptSrc
- デルタ変換される距離ベクトルptDst
- 結果として変換された距離ベクトル
ptDst
public void deltaTransform(double[] srcPts, int srcOff, double[] dstPts, int dstOff, int numPts)
[ x' ] [ m00 m01 (m02) ] [ x ] [ m00x + m01y ] [ y' ] = [ m10 m11 (m12) ] [ y ] = [ m10x + m11y ] [ (1) ] [ (0) (0) ( 1 ) ] [ (1) ] [ (1) ]2 つの座標配列セクションは完全に同じか、結果の有効性に影響を与えずに同じ配列のセクションをオーバーラップしたものです。このメソッドは、転送元の座標が変換可能になる前に、それまでのオペレーションによって上書きされないことを保証します。座標は、指定されたオフセットから始まる配列に
[x0, y0, x1, y1, ..., xn, yn]
という順序で格納されます。
srcPts
- 転送元の距離ベクトルが格納されている配列。各ベクトルは、相対 x, y 座標のペアとして格納されるdstPts
- 変換済みの距離ベクトルが返される配列。各ベクトルは相対 x, y 座標のペアとして格納されるsrcOff
- 転送元配列での変換される最初のベクトルへのオフセットdstOff
- 最初の変換ベクトルが格納される転送先配列内の位置へのオフセットnumPts
- 変換されるベクトル座標ペアの数public Shape createTransformedShape(Shape pSrc)
Shape
をこの変換によって変換し、その Shape
のジオメトリによって定義される新しい Shape
オブジェクトを返します。
pSrc
- この変換で変換される指定された Shape
オブジェクト
Shape
のジオメトリを定義する新しい Shape
オブジェクトpublic String toString()
Object
の値を表現する String
を返します。
Object
内の toString
Object
の値を表す String
public boolean isIdentity()
AffineTransform
が恒等変換である場合に true
を返します。
AffineTransform
が恒等変換である場合は true
、そうでない場合は false
public Object clone()
AffineTransform
オブジェクトのコピーを返します。
Object
内の clone
AffineTransform
オブジェクトのコピーである Object
Cloneable
public int hashCode()
Object
内の hashCode
Object.equals(java.lang.Object)
,
Hashtable
public boolean equals(Object obj)
AffineTransform
が、指定された引数と同じアフィン座標変換を表現する場合に true
を返します。
Object
内の equals
obj
- この AffineTransform
と同じかどうかが比較される Object
obj
がこの AffineTransform
オブジェクトと同じ場合は true
、そうでない場合は false
Object.hashCode()
,
Hashtable
|
JavaTM 2 Platform Std. Ed. v1.4.0 |
||||||||||
前のクラス 次のクラス | フレームあり フレームなし | ||||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
Java、Java 2D、および JDBC は米国ならびにその他の国における米国 Sun Microsystems, Inc. の商標もしくは登録商標です。
Copyright 1993-2002 Sun Microsystems, Inc. 901 San Antonio Road
Palo Alto, California, 94303, U.S.A. All Rights Reserved.