- java.lang.Object
- 
- java.awt.geom.AffineTransform
 
- 
- すべての実装されたインタフェース:
- Serializable,- Cloneable
 
 public class AffineTransform extends Object implements Cloneable, Serializable 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 ]90度回転の処理AffineTransformクラスのrotateメソッドのバリエーションの中には、倍精度値の引数で回転角度(ラジアン)を指定するものがあります。 これらのメソッドには、約90度(および180度、270度、360度などの倍数)の回転に対して特殊な処理が用意されており、一般的な四分円回転はより効率的に処理されます。 この特殊な処理により、90度の倍数に近似的な角度を正確に90度の倍数として扱うことができます。 90度の数倍程度である場合、四分円回転として扱われる角度の範囲は約0.00000121度の幅です。 このセクションでは、このような特殊な処理が必要になる理由と、その実装方法について説明します。90度はラジアンで PI/2と表され、かつPIは超越数(そのため無理数)であるため、90度の倍数をラジアンで測定された正確な倍精度値として厳密に表すことはできません。 そのため、有限の倍数度値を使用して四分円回転(90、180、270、360度)を表現することは理論的に不可能です。 倍精度浮動小数点値を使用すると、PI/2の0以外の倍数に非常に近い値を得ることができますが、正弦(sin)または余弦(cos)が正確に0.0、1.0、または -1.0になるだけの十分に近い値が得られるわけではありません。 そのため、Math.sin(0.0)以外のすべての場合について、Math.sin()およびMath.cos()の実装が0.0を返すことはありません。 ただし同様の実装であっても、90度の倍数ごとに一定範囲内の値については、ちょうど1.0および -1.0を返します。これは、正しい応答が1.0または -1.0に非常に近いため、倍精度の有効数字では、0.0に近い値の場合と同程度の正確さで差異を表すことができないためです。これらの問題の最終結果として、これらのラジアン・ベースの回転操作中の行列変更の値を直接生成するために Math.sin()メソッドやMath.cos()メソッドが使用される場合は、正弦や余弦で得られる0.0以外の値により発生する行列のわずかな変動のために、結果として得られる変形はrotate(Math.PI/2.0)のような単純な場合であっても厳密には四分円回転として分類できません。 これらの変形が四分円回転として分類されない場合、変形の種類に基づいて後続の操作を最適化しようとするそれ以降のコードは、もっとも汎用的な実装に委託されます。四分円回転は非常によく行われる操作であるため、回転を変形に適用する場合と得られた変形を座標に適用する場合の両方で、このクラスは四分円回転をある程度早く処理できなければいけません。 このような最適化処理を実現するために、ラジアンで計測された回転角度を使用するメソッドでは、四分円回転を意図した角度を検出すると、四分円回転として扱います。 そのため、これらのメソッドでは、 Math.sin(theta)またはMath.cos(theta)のどちらかが正確に1.0または -1.0を返す場合に角度thetaを四分円回転として扱います。 経験則として、このプロパティは、Math.PI/2.0の数倍程度の場合に約0.0000000211ラジアン(または0.00000121度)の範囲でtrueを保持します。- 導入されたバージョン:
- 1.2
- 関連項目:
- 直列化された形式
 
- 
- 
フィールドのサマリーフィールド 修飾子と型 フィールド 説明 static intTYPE_FLIPこのフラグ・ビットは、このオブジェクトによって定義される変換が、ほかのフラグ・ビットによって指定される変換に加えて、ある軸を中心とする鏡像反転を実行することを示します。鏡像反転により、通常は右手の座標系が左手の座標系に変更されます。static intTYPE_GENERAL_ROTATIONこのフラグ・ビットは、このオブジェクトによって定義される変換が、ほかのフラグ・ビットによって指定される変換に加えて、任意の角度による回転を実行することを示します。static intTYPE_GENERAL_SCALEこのフラグ・ビットは、このオブジェクトによって定義される変換が、ほかのフラグ・ビットによって指定される変換に加えて、汎用的なスケーリングを実行することを示します。static intTYPE_GENERAL_TRANSFORMこの定数は、このオブジェクトによって定義される変換が、入力座標の任意の変換を実行することを示します。static intTYPE_IDENTITYこの定数は、このオブジェクトによって定義される変換が恒等変換であることを示します。static intTYPE_MASK_ROTATIONこの定数は、回転フラグ・ビットのいずれかのビット・マスクです。static intTYPE_MASK_SCALEこの定数は、スケールフ・ラグ・ビットのいずれかのビット・マスクです。static intTYPE_QUADRANT_ROTATIONこのフラグ・ビットは、このオブジェクトによって定義される変換が、ほかのフラグ・ビットによって指定される変換に加えて、90度の倍数で四分円回転を実行することを示します。static intTYPE_TRANSLATIONこのフラグ・ビットは、このオブジェクトによって定義される変換が、ほかのフラグ・ビットによって指定される変換に加えて、1つの移動を実行することを示します。static intTYPE_UNIFORM_SCALEこのフラグ・ビットは、このオブジェクトによって定義される変換が、ほかのフラグ・ビットによって指定される変換に加えて、一様なスケーリングを実行することを示します。
 - 
コンストラクタのサマリーコンストラクタ コンストラクタ 説明 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を構築します。AffineTransform(AffineTransform Tx)指定されたAffineTransformオブジェクトのコピーである、新しいAffineTransformを構築します。
 - 
メソッドのサマリーすべてのメソッド staticメソッド インスタンス・メソッド 具象メソッド 修飾子と型 メソッド 説明 Objectclone()このAffineTransformオブジェクトのコピーを返します。voidconcatenate(AffineTransform Tx)AffineTransform TxをこのAffineTransformCxに連結し、Txによって元のユーザー空間にマッピングされた新しいユーザー空間を提供する最も一般的な方法で使用します。AffineTransformcreateInverse()逆変換を表現するAffineTransformオブジェクトを返します。ShapecreateTransformedShape(Shape pSrc)指定されたShapeがこの変換によって変換されたあと、その幾何学的図形で定義された新しいShapeオブジェクトを返します。voiddeltaTransform(double[] srcPts, int srcOff, double[] dstPts, int dstOff, int numPts)この変換によって相対的な距離ベクトルの配列を変換します。Point2DdeltaTransform(Point2D ptSrc, Point2D ptDst)ptSrcによって指定される相対的な距離ベクトルを変換し、その結果をptDstに格納します。booleanequals(Object obj)このAffineTransformが、指定された引数と同じアフィン座標変換を表現する場合にtrueを返します。doublegetDeterminant()変換の行列表現の行列式を返します。voidgetMatrix(double[] flatmatrix)3×3アフィン変換行列内の6つの指定可能な値を取出し、倍精度値の配列に配置します。static AffineTransformgetQuadrantRotateInstance(int numquadrants)指定された数の四分円だけ座標を回転させる変換を返します。static AffineTransformgetQuadrantRotateInstance(int numquadrants, double anchorx, double anchory)指定されたアンカー・ポイントを中心にして、指定された数の四分円だけ座標を回転させる変換を返します。static AffineTransformgetRotateInstance(double theta)回転変換を表現する変換を返します。static AffineTransformgetRotateInstance(double vecx, double vecy)回転ベクトルに従って座標を回転させる変換を返します。static AffineTransformgetRotateInstance(double theta, double anchorx, double anchory)アンカー・ポイントを中心にして座標を回転させる変換を返します。static AffineTransformgetRotateInstance(double vecx, double vecy, double anchorx, double anchory)回転ベクトルに従って、アンカー・ポイントを中心にして座標を回転させる変換を返します。static AffineTransformgetScaleInstance(double sx, double sy)スケーリング変換を表現する変換を返します。doublegetScaleX()3x3アフィン変換行列のm00要素を返します。doublegetScaleY()3x3アフィン変換行列のm11要素を返します。static AffineTransformgetShearInstance(double shx, double shy)シャーリング変換を表現する変換を返します。doublegetShearX()3×3アフィン変換行列のX座標シャーリング要素(m01)を返します。doublegetShearY()3×3アフィン変換行列のY座標シャーリング要素(m10)を返します。static AffineTransformgetTranslateInstance(double tx, double ty)平行移動変換を表現する変換を返します。doublegetTranslateX()3×3アフィン変換行列の平行移動要素(m02)のX座標を返します。doublegetTranslateY()3×3アフィン変換行列の平行移動要素(m12)のY座標を返します。intgetType()この変換の変換プロパティを記述するフラグ・ビットを返します。inthashCode()この変換のハッシュ・コードを返します。voidinverseTransform(double[] srcPts, int srcOff, double[] dstPts, int dstOff, int numPts)この変換によって倍精度の座標の配列を逆変換します。Point2DinverseTransform(Point2D ptSrc, Point2D ptDst)指定されたptSrcを逆変換して、その結果をptDstに格納します。voidinvert()この変換を自身の逆変換に設定します。booleanisIdentity()このAffineTransformが恒等変換である場合にtrueを返します。voidpreConcatenate(AffineTransform Tx)Txが既存のユーザー空間に対してではなく絶対ピクセル空間に対して座標変換を変更するような、あまり一般的でない方法でこのAffineTransformCxにAffineTransform Txを連結します。voidquadrantRotate(int numquadrants)この変換を、指定された数の四分円だけ座標を回転させる変換と連結します。voidquadrantRotate(int numquadrants, double anchorx, double anchory)この変換を、指定されたアンカー・ポイントを中心にして、指定された数の四分円だけ座標を回転させる変換と連結します。voidrotate(double theta)この変換を回転変換に連結します。voidrotate(double vecx, double vecy)この変換を、回転ベクトルに従って座標を回転させる変換と連結します。voidrotate(double theta, double anchorx, double anchory)この変換を、アンカー・ポイントを中心にして座標を回転する変換と連結します。voidrotate(double vecx, double vecy, double anchorx, double anchory)この変換を、回転ベクトルに従って、アンカー・ポイントを中心にして座標を回転させる変換と連結します。voidscale(double sx, double sy)この変換をスケーリング変換に連結します。voidsetToIdentity()この変換を恒等変換に設定し直します。voidsetToQuadrantRotation(int numquadrants)この変換を、指定された数の四分円だけ座標を回転させる回転変換に設定します。voidsetToQuadrantRotation(int numquadrants, double anchorx, double anchory)この変換を、指定されたアンカー・ポイントを中心にして、指定された数の四分円だけ座標を回転させる、平行移動後の回転変換に設定します。voidsetToRotation(double theta)この変換を回転変換に設定します。voidsetToRotation(double vecx, double vecy)この変換を、回転ベクトルに従って座標を回転させる回転変換に設定します。voidsetToRotation(double theta, double anchorx, double anchory)この変換を平行移動後の回転変換に設定します。voidsetToRotation(double vecx, double vecy, double anchorx, double anchory)この変換を、回転ベクトルに従って、アンカー・ポイントを中心にして座標を回転させる回転変換に設定します。voidsetToScale(double sx, double sy)この変換をスケーリング変換に設定します。voidsetToShear(double shx, double shy)この変換をシャーリング変換に設定します。voidsetToTranslation(double tx, double ty)この変換を平行移動変換に設定します。voidsetTransform(double m00, double m10, double m01, double m11, double m02, double m12)この変換を6つの倍精度値によって指定されている行列に設定します。voidsetTransform(AffineTransform Tx)この変換を、指定されたAffineTransformオブジェクト内の変換のコピーに設定します。voidshear(double shx, double shy)この変換をシャーリング変換に連結します。StringtoString()このObjectの値を表すStringを返します。voidtransform(double[] srcPts, int srcOff, double[] dstPts, int dstOff, int numPts)この変換によって、倍精度の座標の配列を変換します。voidtransform(double[] srcPts, int srcOff, float[] dstPts, int dstOff, int numPts)この変換によって倍精度の座標の配列を変換し、結果をfloat値の配列に格納します。voidtransform(float[] srcPts, int srcOff, double[] dstPts, int dstOff, int numPts)この変換によって浮動小数点の座標の配列を変換し、結果をdouble値の配列に格納します。voidtransform(float[] srcPts, int srcOff, float[] dstPts, int dstOff, int numPts)この変換によって、浮動小数点の座標の配列を変換します。voidtransform(Point2D[] ptSrc, int srcOff, Point2D[] ptDst, int dstOff, int numPts)この変換によってポイント・オブジェクトの配列を変換します。Point2Dtransform(Point2D ptSrc, Point2D ptDst)指定されたptSrcを変換して、その結果をptDstに格納します。voidtranslate(double tx, double ty)この変換を平行移動変換に連結します。
 
- 
- 
- 
フィールドの詳細- 
TYPE_IDENTITYpublic static final int TYPE_IDENTITY この定数は、このオブジェクトによって定義される変換が恒等変換であることを示します。 恒等変換では、出力座標が常に入力座標と同じになります。 この変換が恒等変換ではない場合、型は定数GENERAL_TRANSFORMか、この変換が実行するさまざまな座標変換のための適切なフラグ・ビットの組み合わせのどちらかになります。
 - 
TYPE_TRANSLATIONpublic static final int TYPE_TRANSLATION このフラグ・ビットは、このオブジェクトによって定義される変換が、ほかのフラグ・ビットによって指定される変換に加えて、1つの移動を実行することを示します。 移動では、ベクトルの長さや角度を変えずに座標をx方向とy方向に一定量だけ移動します。
 - 
TYPE_UNIFORM_SCALEpublic static final int TYPE_UNIFORM_SCALE このフラグ・ビットは、このオブジェクトによって定義される変換が、ほかのフラグ・ビットによって指定される変換に加えて、一様なスケーリングを実行することを示します。 一律的なスケーリングでは、ベクトル間の角度を変えずにベクトルの長さをx方向とy方向のどちらにも一定量だけ乗算します。 このフラグ・ビットは、TYPE_GENERAL_SCALEフラグと相互に排他的です。
 - 
TYPE_GENERAL_SCALEpublic static final int TYPE_GENERAL_SCALE このフラグ・ビットは、このオブジェクトによって定義される変換が、ほかのフラグ・ビットによって指定される変換に加えて、汎用的なスケーリングを実行することを示します。 汎用的なスケーリングでは、垂直なベクトル間の角度を変えずにベクトルの長さをx方向とy方向に別々の量だけ乗算します。 このフラグ・ビットは、TYPE_UNIFORM_SCALEフラグと相互に排他的です。
 - 
TYPE_MASK_SCALEpublic static final int TYPE_MASK_SCALE この定数は、スケールフ・ラグ・ビットのいずれかのビット・マスクです。- 導入されたバージョン:
- 1.2
- 関連項目:
- TYPE_UNIFORM_SCALE、- TYPE_GENERAL_SCALE、定数フィールド値
 
 - 
TYPE_FLIPpublic static final int TYPE_FLIP このフラグ・ビットは、このオブジェクトによって定義される変換が、ほかのフラグ・ビットによって指定される変換に加えて、ある軸を中心とする鏡像反転を実行することを示します。鏡像反転により、通常は右手の座標系が左手の座標系に変更されます。 右手の座標系は、右手の親指の先端を見つめている状態で親指以外の指を曲げるのと同じ方向に、正のX軸が反時計方向に回転して正のY軸に重なるものです。 左手の座標系は、左手の親指以外を曲げるのと同じ方向に、正のX軸が時計方向に回転して正のY軸に重なるものです。 適切な調整回転を指定すると回転の角度はすべて同じになるので、元の反転またはミラー変換の角度を判定する算術的方法はありません。
 - 
TYPE_QUADRANT_ROTATIONpublic static final int TYPE_QUADRANT_ROTATION このフラグ・ビットは、このオブジェクトによって定義される変換が、ほかのフラグ・ビットによって指定される変換に加えて、90度の倍数で四分円回転を実行することを示します。 回転では、ベクトルの長さを変えずに、元の方向にかかわりなく同じ量だけベクトルの角度を変更します。 このフラグ・ビットは、TYPE_GENERAL_ROTATIONフラグと相互に排他的です。
 - 
TYPE_GENERAL_ROTATIONpublic static final int TYPE_GENERAL_ROTATION このフラグ・ビットは、このオブジェクトによって定義される変換が、ほかのフラグ・ビットによって指定される変換に加えて、任意の角度による回転を実行することを示します。 回転では、ベクトルの長さを変えずに、元の方向にかかわりなく同じ量だけベクトルの角度を変更します。 このフラグ・ビットは、TYPE_QUADRANT_ROTATIONフラグと相互に排他的です。
 - 
TYPE_MASK_ROTATIONpublic static final int TYPE_MASK_ROTATION この定数は、回転フラグ・ビットのいずれかのビット・マスクです。- 導入されたバージョン:
- 1.2
- 関連項目:
- TYPE_QUADRANT_ROTATION、- TYPE_GENERAL_ROTATION、定数フィールド値
 
 - 
TYPE_GENERAL_TRANSFORMpublic static final int TYPE_GENERAL_TRANSFORM この定数は、このオブジェクトによって定義される変換が、入力座標の任意の変換を実行することを示します。 この変換を上記の定数のいずれかに分類される場合、型は定数TYPE_IDENTITYか、この変換が実行するさまざまな座標変換のための適切なフラグ・ビットの組み合わせのどちらかになります。
 
- 
 - 
コンストラクタの詳細- 
AffineTransformpublic AffineTransform() 恒等変換を表現する新しいAffineTransformを構築します。- 導入されたバージョン:
- 1.2
 
 - 
AffineTransformpublic AffineTransform(AffineTransform Tx) 指定されたAffineTransformオブジェクトのコピーである、新しいAffineTransformを構築します。- パラメータ:
- Tx- コピーする- AffineTransformオブジェクト
- 導入されたバージョン:
- 1.2
 
 - 
AffineTransform@ConstructorProperties({"scaleX","shearY","shearX","scaleY","translateX","translateY"}) public AffineTransform(float m00, float m10, float m01, float m11, float m02, float m12) 3×3変換行列の6つの指定可能エントリを表現する6つの浮動小数点値から、新しいAffineTransformを構築します。- パラメータ:
- m00- 3×3行列のX座標スケーリング要素
- m10- 3×3行列のY座標シャーリング要素
- m01- 3×3行列のX座標シャーリング要素
- m11- 3×3行列のY座標スケーリング要素
- m02- 3×3行列のX座標平行移動要素
- m12- 3×3行列のY座標平行移動要素
- 導入されたバージョン:
- 1.2
 
 - 
AffineTransformpublic AffineTransform(float[] flatmatrix) 3×3変換行列の4つの非平行移動エントリまたは6つの指定可能エントリのどちらかを表現する浮動小数点値の配列から、新しいAffineTransformを構築します。 各値は、配列から{ m00 m10 m01 m11 [m02 m12]}という形式で取り出されます。- パラメータ:
- flatmatrix- 新しい- AffineTransformオブジェクトに設定される値を含むfloat配列。 配列の長さは4以上と見なされます。 配列の長さが6より小さい場合、最初の4つの値のみが取得されます。 配列の長さが6より大きい場合、最初の6つの値が取得される。
- 導入されたバージョン:
- 1.2
 
 - 
AffineTransformpublic AffineTransform(double m00, double m10, double m01, double m11, double m02, double m12)3×3変換行列の6つの指定可能エントリを表現する6つの倍精度値から、新しいAffineTransformを構築します。- パラメータ:
- m00- 3×3行列のX座標スケーリング要素
- m10- 3×3行列のY座標シャーリング要素
- m01- 3×3行列のX座標シャーリング要素
- m11- 3×3行列のY座標スケーリング要素
- m02- 3×3行列のX座標平行移動要素
- m12- 3×3行列のY座標平行移動要素
- 導入されたバージョン:
- 1.2
 
 - 
AffineTransformpublic AffineTransform(double[] flatmatrix) 3×3変換行列の4つの非平行移動エントリまたは6つの指定可能エントリのどちらかを表現する倍精度値の配列から、新しいAffineTransformを構築します。 各値は、配列から{ m00 m10 m01 m11 [m02 m12]}という形式で取り出されます。- パラメータ:
- flatmatrix- 新しい- AffineTransformオブジェクトに設定される値を含むdouble配列。 配列の長さは4以上と見なされます。 配列の長さが6より小さい場合、最初の4つの値のみが取得されます。 配列の長さが6より大きい場合、最初の6つの値が取得される。
- 導入されたバージョン:
- 1.2
 
 
- 
 - 
メソッドの詳細- 
getTranslateInstancepublic static AffineTransform getTranslateInstance(double tx, double ty) 平行移動変換を表現する変換を返します。 返される変換の行列表現は、次のようになります。[ 1 0 tx ] [ 0 1 ty ] [ 0 0 1 ]- パラメータ:
- tx- 座標がX軸方向で平行移動される距離
- ty- 座標がY軸方向で平行移動される距離
- 戻り値:
- 指定されたベクトルで作成された、平行移動変換を表すAffineTransformオブジェクト。
- 導入されたバージョン:
- 1.2
 
 - 
getRotateInstancepublic static AffineTransform getRotateInstance(double theta) 回転変換を表現する変換を返します。 返される変換の行列表現は、次のようになります。[ cos(theta) -sin(theta) 0 ] [ sin(theta) cos(theta) 0 ] [ 0 0 1 ]正の角度thetaで回転すると、正のX軸の点が正のY軸に向かって回転します。 前述の「90度回転の処理」の説明も参照してください。- パラメータ:
- theta- ラジアンで計測した回転角度
- 戻り値:
- 指定された回転角度で作成された、回転変換であるAffineTransformオブジェクト。
- 導入されたバージョン:
- 1.2
 
 - 
getRotateInstancepublic static AffineTransform getRotateInstance(double theta, double anchorx, double anchory) アンカー・ポイントを中心にして座標を回転させる変換を返します。 このオペレーションは、座標をアンカー・ポイントが原点(S1)になるように移動し、これらの座標を新しい原点(S2)を中心に回転してから、最後にその仲介的な原点を元のアンカー・ポイント(S3)の座標に戻すために移動することに相当します。この操作は、次の一連の呼出しに相当します。 AffineTransform Tx = new AffineTransform(); Tx.translate(anchorx, anchory); // S3: final translation Tx.rotate(theta); // S2: rotate around anchor Tx.translate(-anchorx, -anchory); // 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軸に向かって回転します。 前述の「90度回転の処理」の説明も参照してください。- パラメータ:
- theta- ラジアンで計測した回転角度
- anchorx- 回転のアンカー・ポイントのX座標
- anchory- 回転のアンカー・ポイントのY座標
- 戻り値:
- 指定された回転角度で、指定された点を中心にして座標を回転させるAffineTransformオブジェクト。
- 導入されたバージョン:
- 1.2
 
 - 
getRotateInstancepublic static AffineTransform getRotateInstance(double vecx, double vecy) 回転ベクトルに従って座標を回転させる変換を返します。 すべての座標は原点を中心に同じ量だけ回転します。 この回転量で、元の正のX軸に沿った座標は、原点から指定されたベクトル座標を指すベクトルにそろえられます。vecxとvecyの両方が0.0の場合、恒等変換が返されます。 この操作は、次を呼び出すのと同等です。AffineTransform.getRotateInstance(Math.atan2(vecy, vecx));- パラメータ:
- vecx- 回転ベクトルのX座標
- vecy- 回転ベクトルのY座標
- 戻り値:
- 指定された回転ベクトルに従って座標を回転させるAffineTransformオブジェクト。
- 導入されたバージョン:
- 1.6
 
 - 
getRotateInstancepublic static AffineTransform getRotateInstance(double vecx, double vecy, double anchorx, double anchory) 回転ベクトルに従って、アンカー・ポイントを中心にして座標を回転させる変換を返します。 すべての座標は指定されたアンカー・ポイントの座標を中心に同じ量だけ回転します。 この回転量で、元の正のX軸に沿った座標は、原点から指定されたベクトル座標を指すベクトルにそろえられます。vecxとvecyの両方が0.0の場合、恒等変換が返されます。 この操作は、次を呼び出すのと同等です。AffineTransform.getRotateInstance(Math.atan2(vecy, vecx), anchorx, anchory);- パラメータ:
- vecx- 回転ベクトルのX座標
- vecy- 回転ベクトルのY座標
- anchorx- 回転のアンカー・ポイントのX座標
- anchory- 回転のアンカー・ポイントのY座標
- 戻り値:
- 指定された回転ベクトルに従って指定された点を中心にして座標を回転させるAffineTransformオブジェクト。
- 導入されたバージョン:
- 1.6
 
 - 
getQuadrantRotateInstancepublic static AffineTransform getQuadrantRotateInstance(int numquadrants) 指定された数の四分円だけ座標を回転させる変換を返します。 この操作は、次を呼び出すのと同等です。AffineTransform.getRotateInstance(numquadrants * Math.PI / 2.0);正の数の四分円だけ回転すると、正のX軸の点が正のY軸に向かって回転します。- パラメータ:
- numquadrants- 回転させる90度の弧の数
- 戻り値:
- 指定された数の四分円だけ座標を回転させるAffineTransformオブジェクト。
- 導入されたバージョン:
- 1.6
 
 - 
getQuadrantRotateInstancepublic static AffineTransform getQuadrantRotateInstance(int numquadrants, double anchorx, double anchory) 指定されたアンカー・ポイントを中心にして、指定された数の四分円だけ座標を回転させる変換を返します。 この操作は、次を呼び出すのと同等です。AffineTransform.getRotateInstance(numquadrants * Math.PI / 2.0, anchorx, anchory);正の数の四分円だけ回転すると、正のX軸の点が正のY軸に向かって回転します。- パラメータ:
- numquadrants- 回転させる90度の弧の数
- anchorx- 回転のアンカー・ポイントのX座標
- anchory- 回転のアンカー・ポイントのY座標
- 戻り値:
- 指定されたアンカー・ポイントを中心にして、指定された数の四分円だけ座標を回転させるAffineTransformオブジェクト。
- 導入されたバージョン:
- 1.6
 
 - 
getScaleInstancepublic static AffineTransform getScaleInstance(double sx, double sy) スケーリング変換を表現する変換を返します。 返される変換の行列表現は、次のようになります。[ sx 0 0 ] [ 0 sy 0 ] [ 0 0 1 ]- パラメータ:
- sx- 座標をX軸方向にスケーリングするために使う係数
- sy- 座標をY軸方向にスケーリングするために使う係数
- 戻り値:
- 指定された係数で座標をスケーリングするAffineTransformオブジェクト。
- 導入されたバージョン:
- 1.2
 
 - 
getShearInstancepublic static AffineTransform getShearInstance(double shx, double shy) シャーリング変換を表現する変換を返します。 返される変換の行列表現は、次のようになります。[ 1 shx 0 ] [ shy 1 0 ] [ 0 0 1 ]- パラメータ:
- shx- Y座標の係数で座標を正のX軸の方向に移動するために使う乗数
- shy- X座標の係数で座標を正のY軸の方向に移動するために使う乗数
- 戻り値:
- 指定された乗数で座標を変形させるAffineTransformオブジェクト。
- 導入されたバージョン:
- 1.2
 
 - 
getTypepublic int getType() この変換の変換プロパティを記述するフラグ・ビットを返します。 返される値は、定数TYPE_IDENTITYまたはTYPE_GENERAL_TRANSFORMのどちらか、あるいは適切なフラグ・ビットの組合せになります。 フラグ・ビットの有効な組み合わせは、TYPE_UNIFORM_SCALEフラグ・ビットまたはTYPE_GENERAL_SCALEフラグ・ビットのどちらかと、TYPE_QUADRANT_ROTATIONフラグ・ビットまたはTYPE_GENERAL_ROTATIONフラグ・ビットのどちらかに加えて、TYPE_TRANSLATIONフラグ・ビットを結合する排他的論理和の演算です。- 戻り値:
- この変換に適用される任意の指定フラグによる論理和の組み合わせ
- 導入されたバージョン:
- 1.2
- 関連項目:
- TYPE_IDENTITY,- TYPE_TRANSLATION,- TYPE_UNIFORM_SCALE,- TYPE_GENERAL_SCALE,- TYPE_QUADRANT_ROTATION,- TYPE_GENERAL_ROTATION,- TYPE_GENERAL_TRANSFORM
 
 - 
getDeterminantpublic double getDeterminant() 変換の行列表現の行列式を返します。 行列式は、逆変換の存在を判定するためにも、XとYのスケーリングの組み合わせによる変換を表現する1つの値を取得するためにも使用できます。行列式がゼロでない場合、この変換には逆変換が存在し、逆変換に依存するさまざまなメソッドは NoninvertibleTransformExceptionをスローする必要がありません。 行列式がゼロの場合、この変換はすべての入力座標を線または点にマップするので逆変換できません。 行列式が十分にゼロに近い場合、逆変換オペレーションは意味のある結果を出せるだけの精度を確保できない場合があります。getTypeメソッドで示されるように、この変換が一様なスケーリングを表現する場合、行列式はすべての点が原点を基準に拡張または縮小される一様なスケーリング係数の2乗も表します。 この変換が一様でないスケーリングまたはより汎用的な変換を表現する場合、行列式が表す値は、逆変換が可能かどうかを判定するためだけに使用できます。算術的に、行列式は次の公式で計算されます。 | m00 m01 m02 | | m10 m11 m12 | = m00 * m11 - m01 * m10 | 0 0 1 |- 戻り値:
- 座標を変換するために使用される行列の行列式。
- 導入されたバージョン:
- 1.2
- 関連項目:
- getType(),- createInverse(),- inverseTransform(java.awt.geom.Point2D, java.awt.geom.Point2D),- TYPE_UNIFORM_SCALE
 
 - 
getMatrixpublic void getMatrix(double[] flatmatrix) 3×3アフィン変換行列内の6つの指定可能な値を取出し、倍精度値の配列に配置します。 これらの値は、{ m00 m10 m01 m11 m02 m12 }として配列に格納されます。 4つのdouble値の配列も指定できます。この場合は、配列の非平行移動部分を表す最初の4つの要素のみが取得され、これらの値は{ m00 m10 m01 m11 }として配列に格納されます。- パラメータ:
- flatmatrix- 戻り値を格納するために使用されるdouble配列。
- 導入されたバージョン:
- 1.2
- 関連項目:
- getScaleX(),- getScaleY(),- getShearX(),- getShearY(),- getTranslateX(),- getTranslateY()
 
 - 
getScaleXpublic double getScaleX() 3x3アフィン変換行列のm00要素を返します。 この行列係数は、入力X座標が出力X座標にどのように影響するかを決定し、変換のスケールの1つの要素です。 この変換によってX座標が拡大または縮小される全体量を測定するには、次のコードを使用します:Point2D p = new Point2D.Double(1, 0); p = tx.deltaTransform(p, p); double scaleX = p.distance(0, 0);- 戻り値:
- 3x3アフィン変換行列のm00要素であるdouble値。
- 導入されたバージョン:
- 1.2
- 関連項目:
- getMatrix(double[])
 
 - 
getScaleYpublic double getScaleY() 3x3アフィン変換行列のm11要素を返します。 この行列係数は、入力Y座標が出力Y座標にどのように影響するかを決定し、変換のスケールの1要素です。 この変換によってY座標が拡大または縮小される全体量を測定するには、次のコードを使用します:Point2D p = new Point2D.Double(0, 1); p = tx.deltaTransform(p, p); double scaleY = p.distance(0, 0);- 戻り値:
- 3x3アフィン変換行列のm11要素であるdouble値。
- 導入されたバージョン:
- 1.2
- 関連項目:
- getMatrix(double[])
 
 - 
getShearXpublic double getShearX() 3×3アフィン変換行列のX座標シャーリング要素(m01)を返します。- 戻り値:
- アフィン変換行列のシャーリング要素のX座標を表すdouble値。
- 導入されたバージョン:
- 1.2
- 関連項目:
- getMatrix(double[])
 
 - 
getShearYpublic double getShearY() 3×3アフィン変換行列のY座標シャーリング要素(m10)を返します。- 戻り値:
- アフィン変換行列のシャーリング要素のY座標を表すdouble値。
- 導入されたバージョン:
- 1.2
- 関連項目:
- getMatrix(double[])
 
 - 
getTranslateXpublic double getTranslateX() 3×3アフィン変換行列の平行移動要素(m02)のX座標を返します。- 戻り値:
- アフィン変換行列の平行移動要素のX座標を表すdouble値。
- 導入されたバージョン:
- 1.2
- 関連項目:
- getMatrix(double[])
 
 - 
getTranslateYpublic double getTranslateY() 3×3アフィン変換行列の平行移動要素(m12)のY座標を返します。- 戻り値:
- アフィン変換行列の平行移動要素のY座標を表すdouble値。
- 導入されたバージョン:
- 1.2
- 関連項目:
- getMatrix(double[])
 
 - 
translatepublic void translate(double tx, double ty)この変換を平行移動変換に連結します。 これは、concatenate(T)を呼び出すことに相当します。ここで、Tは次の行列によって表されるAffineTransformです。[ 1 0 tx ] [ 0 1 ty ] [ 0 0 1 ]- パラメータ:
- tx- 座標がX軸方向で平行移動される距離
- ty- 座標がY軸方向で平行移動される距離
- 導入されたバージョン:
- 1.2
 
 - 
rotatepublic void rotate(double theta) この変換を回転変換に連結します。 これは、concatenate(R)を呼び出すことに相当します。ここで、Rは次の行列によって表されるAffineTransformです。[ cos(theta) -sin(theta) 0 ] [ sin(theta) cos(theta) 0 ] [ 0 0 1 ]正の角度thetaで回転すると、正のX軸の点が正のY軸に向かって回転します。 前述の「90度回転の処理」の説明も参照してください。- パラメータ:
- theta- ラジアンで計測した回転角度
- 導入されたバージョン:
- 1.2
 
 - 
rotatepublic void rotate(double theta, double anchorx, double anchory)この変換を、アンカー・ポイントを中心にして座標を回転する変換と連結します。 このオペレーションは、座標をアンカー・ポイントが原点(S1)になるように移動し、これらの座標を新しい原点(S2)を中心に回転してから、最後にその仲介的な原点を元のアンカー・ポイント(S3)の座標に戻すために移動することに相当します。この操作は、次の一連の呼出しに相当します。 translate(anchorx, anchory); // S3: final translation rotate(theta); // S2: rotate around anchor translate(-anchorx, -anchory); // S1: translate anchor to origin正の角度thetaで回転すると、正のX軸の点が正のY軸に向かって回転します。 前述の「90度回転の処理」の説明も参照してください。- パラメータ:
- theta- ラジアンで計測した回転角度
- anchorx- 回転のアンカー・ポイントのX座標
- anchory- 回転のアンカー・ポイントのY座標
- 導入されたバージョン:
- 1.2
 
 - 
rotatepublic void rotate(double vecx, double vecy)この変換を、回転ベクトルに従って座標を回転させる変換と連結します。 すべての座標は原点を中心に同じ量だけ回転します。 この回転量で、元の正のX軸に沿った座標は、原点から指定されたベクトル座標を指すベクトルにそろえられます。vecxとvecyの両方が0.0の場合、この変換に追加の回転は行われません。 この操作は、次を呼び出すのと同等です。rotate(Math.atan2(vecy, vecx));- パラメータ:
- vecx- 回転ベクトルのX座標
- vecy- 回転ベクトルのY座標
- 導入されたバージョン:
- 1.6
 
 - 
rotatepublic void rotate(double vecx, double vecy, double anchorx, double anchory)この変換を、回転ベクトルに従って、アンカー・ポイントを中心にして座標を回転させる変換と連結します。 すべての座標は指定されたアンカー・ポイントの座標を中心に同じ量だけ回転します。 この回転量で、元の正のX軸に沿った座標は、原点から指定されたベクトル座標を指すベクトルにそろえられます。vecxとvecyの両方が0.0の場合、変換は決して変更されません。 このメソッドは、次を呼び出すのと同等です。rotate(Math.atan2(vecy, vecx), anchorx, anchory);- パラメータ:
- vecx- 回転ベクトルのX座標
- vecy- 回転ベクトルのY座標
- anchorx- 回転のアンカー・ポイントのX座標
- anchory- 回転のアンカー・ポイントのY座標
- 導入されたバージョン:
- 1.6
 
 - 
quadrantRotatepublic void quadrantRotate(int numquadrants) この変換を、指定された数の四分円だけ座標を回転させる変換と連結します。 これは、次を呼び出すのと同等です。rotate(numquadrants * Math.PI / 2.0);正の数の四分円だけ回転すると、正のX軸の点が正のY軸に向かって回転します。- パラメータ:
- numquadrants- 回転させる90度の弧の数
- 導入されたバージョン:
- 1.6
 
 - 
quadrantRotatepublic void quadrantRotate(int numquadrants, double anchorx, double anchory)この変換を、指定されたアンカー・ポイントを中心にして、指定された数の四分円だけ座標を回転させる変換と連結します。 このメソッドは、次を呼び出すのと同等です。rotate(numquadrants * Math.PI / 2.0, anchorx, anchory);正の数の四分円だけ回転すると、正のX軸の点が正のY軸に向かって回転します。- パラメータ:
- numquadrants- 回転させる90度の弧の数
- anchorx- 回転のアンカー・ポイントのX座標
- anchory- 回転のアンカー・ポイントのY座標
- 導入されたバージョン:
- 1.6
 
 - 
scalepublic void scale(double sx, double sy)この変換をスケーリング変換に連結します。 これは、concatenate(S)を呼び出すことに相当します。ここで、Sは次の行列によって表されるAffineTransformです。[ sx 0 0 ] [ 0 sy 0 ] [ 0 0 1 ]- パラメータ:
- sx- 座標をX軸方向にスケーリングするために使う係数
- sy- 座標をY軸方向にスケーリングするために使う係数
- 導入されたバージョン:
- 1.2
 
 - 
shearpublic void shear(double shx, double shy)この変換をシャーリング変換に連結します。 これは、concatenate(SH)を呼び出すことに相当します。ここで、SHは次の行列によって表されるAffineTransformです。[ 1 shx 0 ] [ shy 1 0 ] [ 0 0 1 ]- パラメータ:
- shx- Y座標の係数で座標を正のX軸の方向に移動するために使う乗数
- shy- X座標の係数で座標を正のY軸の方向に移動するために使う乗数
- 導入されたバージョン:
- 1.2
 
 - 
setToIdentitypublic void setToIdentity() この変換を恒等変換に設定し直します。- 導入されたバージョン:
- 1.2
 
 - 
setToTranslationpublic void setToTranslation(double tx, double ty)この変換を平行移動変換に設定します。 この変換を表現する行列は次のようになります。[ 1 0 tx ] [ 0 1 ty ] [ 0 0 1 ]- パラメータ:
- tx- 座標がX軸方向で平行移動される距離
- ty- 座標がY軸方向で平行移動される距離
- 導入されたバージョン:
- 1.2
 
 - 
setToRotationpublic void setToRotation(double theta) この変換を回転変換に設定します。 この変換を表現する行列は次のようになります。[ cos(theta) -sin(theta) 0 ] [ sin(theta) cos(theta) 0 ] [ 0 0 1 ]正の角度thetaで回転すると、正のX軸の点が正のY軸に向かって回転します。 前述の「90度回転の処理」の説明も参照してください。- パラメータ:
- theta- ラジアンで計測した回転角度
- 導入されたバージョン:
- 1.2
 
 - 
setToRotationpublic void setToRotation(double theta, double anchorx, double anchory)この変換を平行移動後の回転変換に設定します。 このオペレーションは、座標をアンカー・ポイントが原点(S1)になるように移動し、これらの座標を新しい原点(S2)を中心に回転してから、最後にその仲介的な原点を元のアンカー・ポイント(S3)の座標に戻すために移動することに相当します。この操作は、次の一連の呼出しに相当します。 setToTranslation(anchorx, anchory); // S3: final translation rotate(theta); // S2: rotate around anchor translate(-anchorx, -anchory); // 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軸に向かって回転します。 前述の「90度回転の処理」の説明も参照してください。- パラメータ:
- theta- ラジアンで計測した回転角度
- anchorx- 回転のアンカー・ポイントのX座標
- anchory- 回転のアンカー・ポイントのY座標
- 導入されたバージョン:
- 1.2
 
 - 
setToRotationpublic void setToRotation(double vecx, double vecy)この変換を、回転ベクトルに従って座標を回転させる回転変換に設定します。 すべての座標は原点を中心に同じ量だけ回転します。 この回転量で、元の正のX軸に沿った座標は、原点から指定されたベクトル座標を指すベクトルにそろえられます。vecxとvecyの両方が0.0の場合、変換は恒等変換に設定されます。 この操作は、次を呼び出すのと同等です。setToRotation(Math.atan2(vecy, vecx));- パラメータ:
- vecx- 回転ベクトルのX座標
- vecy- 回転ベクトルのY座標
- 導入されたバージョン:
- 1.6
 
 - 
setToRotationpublic void setToRotation(double vecx, double vecy, double anchorx, double anchory)この変換を、回転ベクトルに従って、アンカー・ポイントを中心にして座標を回転させる回転変換に設定します。 すべての座標は指定されたアンカー・ポイントの座標を中心に同じ量だけ回転します。 この回転量で、元の正のX軸に沿った座標は、原点から指定されたベクトル座標を指すベクトルにそろえられます。vecxとvecyの両方が0.0の場合、変換は恒等変換に設定されます。 この操作は、次を呼び出すのと同等です。setToTranslation(Math.atan2(vecy, vecx), anchorx, anchory);- パラメータ:
- vecx- 回転ベクトルのX座標
- vecy- 回転ベクトルのY座標
- anchorx- 回転のアンカー・ポイントのX座標
- anchory- 回転のアンカー・ポイントのY座標
- 導入されたバージョン:
- 1.6
 
 - 
setToQuadrantRotationpublic void setToQuadrantRotation(int numquadrants) この変換を、指定された数の四分円だけ座標を回転させる回転変換に設定します。 この操作は、次を呼び出すのと同等です。setToRotation(numquadrants * Math.PI / 2.0);正の数の四分円だけ回転すると、正のX軸の点が正のY軸に向かって回転します。- パラメータ:
- numquadrants- 回転させる90度の弧の数
- 導入されたバージョン:
- 1.6
 
 - 
setToQuadrantRotationpublic void setToQuadrantRotation(int numquadrants, double anchorx, double anchory)この変換を、指定されたアンカー・ポイントを中心にして、指定された数の四分円だけ座標を回転させる、平行移動後の回転変換に設定します。 この操作は、次を呼び出すのと同等です。setToRotation(numquadrants * Math.PI / 2.0, anchorx, anchory);正の数の四分円だけ回転すると、正のX軸の点が正のY軸に向かって回転します。- パラメータ:
- numquadrants- 回転させる90度の弧の数
- anchorx- 回転のアンカー・ポイントのX座標
- anchory- 回転のアンカー・ポイントのY座標
- 導入されたバージョン:
- 1.6
 
 - 
setToScalepublic void setToScale(double sx, double sy)この変換をスケーリング変換に設定します。 この変換を表現する行列は次のようになります。[ sx 0 0 ] [ 0 sy 0 ] [ 0 0 1 ]- パラメータ:
- sx- 座標をX軸方向にスケーリングするために使う係数
- sy- 座標をY軸方向にスケーリングするために使う係数
- 導入されたバージョン:
- 1.2
 
 - 
setToShearpublic void setToShear(double shx, double shy)この変換をシャーリング変換に設定します。 この変換を表現する行列は次のようになります。[ 1 shx 0 ] [ shy 1 0 ] [ 0 0 1 ]- パラメータ:
- shx- Y座標の係数で座標を正のX軸の方向に移動するために使う乗数
- shy- X座標の係数で座標を正のY軸の方向に移動するために使う乗数
- 導入されたバージョン:
- 1.2
 
 - 
setTransformpublic void setTransform(AffineTransform Tx) この変換を、指定されたAffineTransformオブジェクト内の変換のコピーに設定します。- パラメータ:
- Tx- 変換のコピー元の- AffineTransformオブジェクト
- 導入されたバージョン:
- 1.2
 
 - 
setTransformpublic void setTransform(double m00, double m10, double m01, double m11, double m02, double m12)この変換を6つの倍精度値によって指定されている行列に設定します。- パラメータ:
- m00- 3×3行列のX座標スケーリング要素
- m10- 3×3行列のY座標シャーリング要素
- m01- 3×3行列のX座標シャーリング要素
- m11- 3×3行列のY座標スケーリング要素
- m02- 3×3行列のX座標平行移動要素
- m12- 3×3行列のY座標平行移動要素
- 導入されたバージョン:
- 1.2
 
 - 
concatenatepublic void concatenate(AffineTransform Tx) AffineTransform TxをこのAffineTransformCxに連結し、Txによって元のユーザー空間にマッピングされた新しいユーザー空間を提供する最も一般的な方法で使用します。 Cxを更新すると、結合された変換を実行できます。 更新された変換Cx'で点pを変換することは、Cx'(p) = Cx(Tx(p))のように、最初にTxでpを変換してから、その結果を元の変換Cxで変換することに相当します。行列表記では、この変換Cxが行列[this]で表され、Txが行列[Tx]で表される場合、このメソッドは次の処理を行います。[this] = [this] x [Tx]- パラメータ:
- Tx- この- AffineTransformオブジェクトに連結される- AffineTransformオブジェクト。
- 導入されたバージョン:
- 1.2
- 関連項目:
- preConcatenate(java.awt.geom.AffineTransform)
 
 - 
preConcatenatepublic void preConcatenate(AffineTransform Tx) Txが既存のユーザー空間に対してではなく絶対ピクセル空間に対して座標変換を変更するような、あまり一般的でない方法でこのAffineTransformCxにAffineTransform Txを連結します。 Cxを更新すると、結合された変換を実行できます。 更新された変換Cx'で点pを変換することは、Cx'(p) = Tx(Cx(p))のように、最初に元の変換Cxでpを変換してから、その結果をTxで変換することに相当します。行列表記では、この変換Cxが行列[this]で表され、Txが行列[Tx]で表される場合、このメソッドは次の処理を行います。[this] = [Tx] x [this]- パラメータ:
- Tx- この- AffineTransformオブジェクトに連結される- AffineTransformオブジェクト。
- 導入されたバージョン:
- 1.2
- 関連項目:
- concatenate(java.awt.geom.AffineTransform)
 
 - 
createInversepublic AffineTransform createInverse() throws NoninvertibleTransformException 逆変換を表現するAffineTransformオブジェクトを返します。 この変換Txの逆変換Tx'は、Txによって変換された座標をその元の座標にマップして戻します。 つまり、Tx'(Tx(p))= p = Tx(Tx'(p))です。この変換がすべての座標を点や線にマップする場合、変換は逆写像を持ちません。これは、転送先の点や線にない座標が逆写像を持たないためです。 getDeterminantメソッドを使うと、この変換が逆写像を持つかどうかを判定できます。この変換が逆写像を持たない場合、createInverseメソッドが呼び出されると、例外がスローされます。- 戻り値:
- 逆変換を表す新しいAffineTransformオブジェクト。
- 例外:
- NoninvertibleTransformException- 行列を反転できない場合。
- 導入されたバージョン:
- 1.2
- 関連項目:
- getDeterminant()
 
 - 
invertpublic void invert() throws NoninvertibleTransformExceptionこの変換を自身の逆変換に設定します。 この変換Txの逆変換Tx'は、Txによって変換された座標をその元の座標にマップして戻します。 つまり、Tx'(Tx(p))= p = Tx(Tx'(p))です。この変換がすべての座標を点や線にマップする場合、変換は逆写像を持ちません。これは、転送先の点や線にない座標が逆写像を持たないためです。 getDeterminantメソッドを使うと、この変換が逆写像を持つかどうかを判定できます。この変換が逆写像を持たない場合、invertメソッドが呼び出されると、例外がスローされます。- 例外:
- NoninvertibleTransformException- 行列を反転できない場合。
- 導入されたバージョン:
- 1.6
- 関連項目:
- getDeterminant()
 
 - 
transformpublic Point2D transform(Point2D ptSrc, Point2D ptDst) 指定されたptSrcを変換して、その結果をptDstに格納します。ptDstがnullの場合は、新しいPoint2Dオブジェクトが割り当てられてから、変換の結果がこのオブジェクトに格納されます。 どちらの場合も、便宜上、変換後の点を格納しているptDstが返されます。ptSrcとptDstが同じオブジェクトの場合、入力点は変換後の点で適切に上書きされます。- パラメータ:
- ptSrc- 変換される指定された- Point2D
- ptDst-- ptSrcを変換した結果を格納する指定された- Point2D
- 戻り値:
- ptSrcを変換し、その結果を- ptDstに格納した後の- ptDst。
- 導入されたバージョン:
- 1.2
 
 - 
transformpublic 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- 変換されるポイント・オブジェクトの数
- 導入されたバージョン:
- 1.2
 
 - 
transformpublic void transform(float[] srcPts, int srcOff, float[] dstPts, int dstOff, int numPts)この変換によって、浮動小数点の座標の配列を変換します。 2つの座標配列セクションは完全に同じか、結果の有効性に影響を与えずに同じ配列のセクションをオーバーラップしたものです。 このメソッドは、転送元の座標が変換可能になる前に、それまでのオペレーションによって上書きされないことを保証します。 座標は、指定されたオフセットから始まる配列に[x0, y0, x1, y1, ..., xn, yn]という順序で格納されます。- パラメータ:
- srcPts- 転送元の点座標が返されている配列。 各点はx, y座標のペアとして格納されます。
- dstPts- 変換された点座標が返される配列。 各点はx, y座標のペアとして格納されます。
- srcOff- 転送元配列内の変換される最初の点へのオフセット
- dstOff- 変換された最初の点が格納される転送先配列内の位置へのオフセット
- numPts- 変換される点の数
- 導入されたバージョン:
- 1.2
 
 - 
transformpublic void transform(double[] srcPts, int srcOff, double[] dstPts, int dstOff, int numPts)この変換によって、倍精度の座標の配列を変換します。 2つの座標配列セクションは完全に同じか、結果の有効性に影響を与えずに同じ配列のセクションをオーバーラップしたものです。 このメソッドは、転送元の座標が変換可能になる前に、それまでのオペレーションによって上書きされないことを保証します。 座標は、指定されたオフセットから始まる配列に[x0, y0, x1, y1, ..., xn, yn]という順序で格納されます。- パラメータ:
- srcPts- 転送元の点座標が返されている配列。 各点はx, y座標のペアとして格納されます。
- dstPts- 変換された点座標が返される配列。 各点はx, y座標のペアとして格納されます。
- srcOff- 転送元配列内の変換される最初の点へのオフセット
- dstOff- 変換された最初の点が格納される転送先配列内の位置へのオフセット
- numPts- 変換されるポイント・オブジェクトの数
- 導入されたバージョン:
- 1.2
 
 - 
transformpublic void transform(float[] srcPts, int srcOff, double[] dstPts, int dstOff, int numPts)この変換によって浮動小数点の座標の配列を変換し、結果をdouble値の配列に格納します。 座標は、指定されたオフセットから始まる配列に[x0, y0, x1, y1, ..., xn, yn]という順序で格納されます。- パラメータ:
- srcPts- 転送元の点座標が返されている配列。 各点はx, y座標のペアとして格納されます。
- dstPts- 変換された点座標が返される配列。 各点はx, y座標のペアとして格納されます。
- srcOff- 転送元配列内の変換される最初の点へのオフセット
- dstOff- 変換された最初の点が格納される転送先配列内の位置へのオフセット
- numPts- 変換される点の数
- 導入されたバージョン:
- 1.2
 
 - 
transformpublic void transform(double[] srcPts, int srcOff, float[] dstPts, int dstOff, int numPts)この変換によって倍精度の座標の配列を変換し、結果をfloat値の配列に格納します。 座標は、指定されたオフセットから始まる配列に[x0, y0, x1, y1, ..., xn, yn]という順序で格納されます。- パラメータ:
- srcPts- 転送元の点座標が返されている配列。 各点はx, y座標のペアとして格納されます。
- dstPts- 変換された点座標が返される配列。 各点はx, y座標のペアとして格納されます。
- srcOff- 転送元配列内の変換される最初の点へのオフセット
- dstOff- 変換された最初の点が格納される転送先配列内の位置へのオフセット
- numPts- 変換されるポイント・オブジェクトの数
- 導入されたバージョン:
- 1.2
 
 - 
inverseTransformpublic Point2D inverseTransform(Point2D ptSrc, Point2D ptDst) throws NoninvertibleTransformException 指定されたptSrcを逆変換して、その結果をptDstに格納します。ptDstがnullの場合、新しいPoint2Dオブジェクトが割り当てられてから、変換の結果がこのオブジェクトに格納されます。 どちらの場合も、便宜上、変換後の点を格納しているptDstが返されます。ptSrcとptDstが同じオブジェクトの場合、入力点は変換後の点で適切に上書きされます。- パラメータ:
- ptSrc- 逆変換される点
- ptDst- 結果として得られる変換された点
- 戻り値:
- 逆変換の結果を含むptDst。
- 例外:
- NoninvertibleTransformException- 行列を反転できない場合。
- 導入されたバージョン:
- 1.2
 
 - 
inverseTransformpublic void inverseTransform(double[] srcPts, int srcOff, double[] dstPts, int dstOff, int numPts) throws NoninvertibleTransformExceptionこの変換によって倍精度の座標の配列を逆変換します。 2つの座標配列セクションは完全に同じか、結果の有効性に影響を与えずに同じ配列のセクションをオーバーラップしたものです。 このメソッドは、転送元の座標が変換可能になる前に、それまでのオペレーションによって上書きされないことを保証します。 座標は、指定されたオフセットから始まる配列に[x0, y0, x1, y1, ..., xn, yn]という順序で格納されます。- パラメータ:
- srcPts- 転送元の点座標が返されている配列。 各点はx, y座標のペアとして格納されます。
- dstPts- 変換された点座標が返される配列。 各点はx, y座標のペアとして格納されます。
- srcOff- 転送元配列内の変換される最初の点へのオフセット
- dstOff- 変換された最初の点が格納される転送先配列内の位置へのオフセット
- numPts- 変換されるポイント・オブジェクトの数
- 例外:
- NoninvertibleTransformException- 行列を反転できない場合。
- 導入されたバージョン:
- 1.2
 
 - 
deltaTransformpublic 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。
- 導入されたバージョン:
- 1.2
 
 - 
deltaTransformpublic 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- 変換されるベクトル座標ペアの数
- 導入されたバージョン:
- 1.2
 
 - 
createTransformedShapepublic Shape createTransformedShape(Shape pSrc) 指定されたShapeがこの変換によって変換されたあと、その幾何学的図形で定義された新しいShapeオブジェクトを返します。- パラメータ:
- pSrc- この変換で変換される指定された- Shapeオブジェクト。
- 戻り値:
- 変換されたShapeの幾何学的図形を定義する新しいShapeオブジェクト。pSrcがnullの場合はnull。
- 導入されたバージョン:
- 1.2
 
 - 
isIdentitypublic boolean isIdentity() このAffineTransformが恒等変換である場合にtrueを返します。- 戻り値:
- このAffineTransformが恒等変換である場合はtrue。それ以外の場合はfalse。
- 導入されたバージョン:
- 1.2
 
 - 
clonepublic Object clone() このAffineTransformオブジェクトのコピーを返します。
 - 
hashCodepublic int hashCode() この変換のハッシュ・コードを返します。- オーバーライド:
- hashCode、クラス:- Object
- 戻り値:
- この変換のハッシュ・コード。
- 導入されたバージョン:
- 1.2
- 関連項目:
- Object.equals(java.lang.Object),- System.identityHashCode(java.lang.Object)
 
 - 
equalspublic boolean equals(Object obj) このAffineTransformが、指定された引数と同じアフィン座標変換を表現する場合にtrueを返します。- オーバーライド:
- equals、クラス:- Object
- パラメータ:
- obj- この- AffineTransformと等しいかどうかが判定される- Object
- 戻り値:
- objがこの- AffineTransformオブジェクトに等しい場合は- true。それ以外の場合は- false。
- 導入されたバージョン:
- 1.2
- 関連項目:
- Object.hashCode()、- HashMap
 
 
- 
 
-