- すべての実装されたインタフェース:
Serializable
,Cloneable
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 final int
このフラグ・ビットは、このオブジェクトによって定義される変換が、ほかのフラグ・ビットによって指定される変換に加えて、ある軸を中心とする鏡像反転を実行することを示します。鏡像反転により、通常は右手の座標系が左手の座標系に変更されます。static final int
このフラグ・ビットは、このオブジェクトによって定義される変換が、ほかのフラグ・ビットによって指定される変換に加えて、任意の角度による回転を実行することを示します。static final int
このフラグ・ビットは、このオブジェクトによって定義される変換が、ほかのフラグ・ビットによって指定される変換に加えて、汎用的なスケーリングを実行することを示します。static final int
この定数は、このオブジェクトによって定義される変換が、入力座標の任意の変換を実行することを示します。static final int
この定数は、このオブジェクトによって定義される変換が恒等変換であることを示します。static final int
この定数は、回転フラグ・ビットのいずれかのビット・マスクです。static final int
この定数は、スケールフ・ラグ・ビットのいずれかのビット・マスクです。static final int
このフラグ・ビットは、このオブジェクトによって定義される変換が、ほかのフラグ・ビットによって指定される変換に加えて、90度の倍数で四分円回転を実行することを示します。static final int
このフラグ・ビットは、このオブジェクトによって定義される変換が、ほかのフラグ・ビットによって指定される変換に加えて、1つの移動を実行することを示します。static final int
このフラグ・ビットは、このオブジェクトによって定義される変換が、ほかのフラグ・ビットによって指定される変換に加えて、一様なスケーリングを実行することを示します。 -
コンストラクタのサマリー
コンストラクタコンストラクタ説明恒等変換を表現する新しい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
を構築します。 -
メソッドのサマリー
修飾子と型メソッド説明clone()
このAffineTransform
オブジェクトのコピーを返します。void
AffineTransform Tx
をこのAffineTransform
Cxに連結し、Tx
によって元のユーザー空間にマッピングされた新しいユーザー空間を提供する最も一般的な方法で使用します。逆変換を表現するAffineTransform
オブジェクトを返します。createTransformedShape
(Shape pSrc) 指定されたShape
がこの変換によって変換されたあと、その幾何学的図形で定義された新しいShape
オブジェクトを返します。void
deltaTransform
(double[] srcPts, int srcOff, double[] dstPts, int dstOff, int numPts) この変換によって相対的な距離ベクトルの配列を変換します。deltaTransform
(Point2D ptSrc, Point2D ptDst) ptSrc
によって指定される相対的な距離ベクトルを変換し、その結果をptDst
に格納します。boolean
このAffineTransform
が、指定された引数と同じアフィン座標変換を表現する場合にtrue
を返します。double
変換の行列表現の行列式を返します。void
getMatrix
(double[] flatmatrix) 3×3アフィン変換行列内の6つの指定可能な値を取出し、倍精度値の配列に配置します。static AffineTransform
getQuadrantRotateInstance
(int numquadrants) 指定された数の四分円だけ座標を回転させる変換を返します。static AffineTransform
getQuadrantRotateInstance
(int numquadrants, double anchorx, double anchory) 指定されたアンカー・ポイントを中心にして、指定された数の四分円だけ座標を回転させる変換を返します。static AffineTransform
getRotateInstance
(double theta) 回転変換を表現する変換を返します。static AffineTransform
getRotateInstance
(double vecx, double vecy) 回転ベクトルに従って座標を回転させる変換を返します。static AffineTransform
getRotateInstance
(double theta, double anchorx, double anchory) アンカー・ポイントを中心にして座標を回転させる変換を返します。static AffineTransform
getRotateInstance
(double vecx, double vecy, double anchorx, double anchory) 回転ベクトルに従って、アンカー・ポイントを中心にして座標を回転させる変換を返します。static AffineTransform
getScaleInstance
(double sx, double sy) スケーリング変換を表現する変換を返します。double
3x3アフィン変換行列のm00
要素を返します。double
3x3アフィン変換行列のm11
要素を返します。static AffineTransform
getShearInstance
(double shx, double shy) シャーリング変換を表現する変換を返します。double
3×3アフィン変換行列のX座標シャーリング要素(m01)を返します。double
3×3アフィン変換行列のY座標シャーリング要素(m10)を返します。static AffineTransform
getTranslateInstance
(double tx, double ty) 平行移動変換を表現する変換を返します。double
3×3アフィン変換行列の平行移動要素(m02)のX座標を返します。double
3×3アフィン変換行列の平行移動要素(m12)のY座標を返します。int
getType()
この変換の変換プロパティを記述するフラグ・ビットを返します。int
hashCode()
この変換のハッシュ・コードを返します。void
inverseTransform
(double[] srcPts, int srcOff, double[] dstPts, int dstOff, int numPts) この変換によって倍精度の座標の配列を逆変換します。inverseTransform
(Point2D ptSrc, Point2D ptDst) 指定されたptSrc
を逆変換して、その結果をptDst
に格納します。void
invert()
この変換を自身の逆変換に設定します。boolean
このAffineTransform
が恒等変換である場合にtrue
を返します。void
Tx
が既存のユーザー空間に対してではなく絶対ピクセル空間に対して座標変換を変更するような、あまり一般的でない方法でこのAffineTransform
CxにAffineTransform Tx
を連結します。void
quadrantRotate
(int numquadrants) この変換を、指定された数の四分円だけ座標を回転させる変換と連結します。void
quadrantRotate
(int numquadrants, double anchorx, double anchory) この変換を、指定されたアンカー・ポイントを中心にして、指定された数の四分円だけ座標を回転させる変換と連結します。void
rotate
(double theta) この変換を回転変換に連結します。void
rotate
(double vecx, double vecy) この変換を、回転ベクトルに従って座標を回転させる変換と連結します。void
rotate
(double theta, double anchorx, double anchory) この変換を、アンカー・ポイントを中心にして座標を回転する変換と連結します。void
rotate
(double vecx, double vecy, double anchorx, double anchory) この変換を、回転ベクトルに従って、アンカー・ポイントを中心にして座標を回転させる変換と連結します。void
scale
(double sx, double sy) この変換をスケーリング変換に連結します。void
この変換を恒等変換に設定し直します。void
setToQuadrantRotation
(int numquadrants) この変換を、指定された数の四分円だけ座標を回転させる回転変換に設定します。void
setToQuadrantRotation
(int numquadrants, double anchorx, double anchory) この変換を、指定されたアンカー・ポイントを中心にして、指定された数の四分円だけ座標を回転させる、平行移動後の回転変換に設定します。void
setToRotation
(double theta) この変換を回転変換に設定します。void
setToRotation
(double vecx, double vecy) この変換を、回転ベクトルに従って座標を回転させる回転変換に設定します。void
setToRotation
(double theta, double anchorx, double anchory) この変換を平行移動後の回転変換に設定します。void
setToRotation
(double vecx, double vecy, double anchorx, double anchory) この変換を、回転ベクトルに従って、アンカー・ポイントを中心にして座標を回転させる回転変換に設定します。void
setToScale
(double sx, double sy) この変換をスケーリング変換に設定します。void
setToShear
(double shx, double shy) この変換をシャーリング変換に設定します。void
setToTranslation
(double tx, double ty) この変換を平行移動変換に設定します。void
setTransform
(double m00, double m10, double m01, double m11, double m02, double m12) この変換を6つの倍精度値によって指定されている行列に設定します。void
この変換を、指定されたAffineTransform
オブジェクト内の変換のコピーに設定します。void
shear
(double shx, double shy) この変換をシャーリング変換に連結します。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
この変換によってポイント・オブジェクトの配列を変換します。指定されたptSrc
を変換して、その結果をptDst
に格納します。void
translate
(double tx, double ty) この変換を平行移動変換に連結します。
-
フィールド詳細
-
TYPE_IDENTITY
public static final int TYPE_IDENTITYこの定数は、このオブジェクトによって定義される変換が恒等変換であることを示します。 恒等変換では、出力座標が常に入力座標と同じになります。 この変換が恒等変換ではない場合、型は定数GENERAL_TRANSFORMか、この変換が実行するさまざまな座標変換のための適切なフラグ・ビットの組み合わせのどちらかになります。 -
TYPE_TRANSLATION
public static final int TYPE_TRANSLATIONこのフラグ・ビットは、このオブジェクトによって定義される変換が、ほかのフラグ・ビットによって指定される変換に加えて、1つの移動を実行することを示します。 移動では、ベクトルの長さや角度を変えずに座標をx方向とy方向に一定量だけ移動します。 -
TYPE_UNIFORM_SCALE
public static final int TYPE_UNIFORM_SCALEこのフラグ・ビットは、このオブジェクトによって定義される変換が、ほかのフラグ・ビットによって指定される変換に加えて、一様なスケーリングを実行することを示します。 一律的なスケーリングでは、ベクトル間の角度を変えずにベクトルの長さをx方向とy方向のどちらにも一定量だけ乗算します。 このフラグ・ビットは、TYPE_GENERAL_SCALEフラグと相互に排他的です。 -
TYPE_GENERAL_SCALE
public static final int TYPE_GENERAL_SCALEこのフラグ・ビットは、このオブジェクトによって定義される変換が、ほかのフラグ・ビットによって指定される変換に加えて、汎用的なスケーリングを実行することを示します。 汎用的なスケーリングでは、垂直なベクトル間の角度を変えずにベクトルの長さをx方向とy方向に別々の量だけ乗算します。 このフラグ・ビットは、TYPE_UNIFORM_SCALEフラグと相互に排他的です。 -
TYPE_MASK_SCALE
public static final int TYPE_MASK_SCALEこの定数は、スケールフ・ラグ・ビットのいずれかのビット・マスクです。- 導入されたバージョン:
- 1.2
- 関連項目:
-
TYPE_FLIP
public static final int TYPE_FLIPこのフラグ・ビットは、このオブジェクトによって定義される変換が、ほかのフラグ・ビットによって指定される変換に加えて、ある軸を中心とする鏡像反転を実行することを示します。鏡像反転により、通常は右手の座標系が左手の座標系に変更されます。 右手の座標系は、右手の親指の先端を見つめている状態で親指以外の指を曲げるのと同じ方向に、正のX軸が反時計方向に回転して正のY軸に重なるものです。 左手の座標系は、左手の親指以外を曲げるのと同じ方向に、正のX軸が時計方向に回転して正のY軸に重なるものです。 適切な調整回転を指定すると回転の角度はすべて同じになるので、元の反転またはミラー変換の角度を判定する算術的方法はありません。 -
TYPE_QUADRANT_ROTATION
public static final int TYPE_QUADRANT_ROTATIONこのフラグ・ビットは、このオブジェクトによって定義される変換が、ほかのフラグ・ビットによって指定される変換に加えて、90度の倍数で四分円回転を実行することを示します。 回転では、ベクトルの長さを変えずに、元の方向にかかわりなく同じ量だけベクトルの角度を変更します。 このフラグ・ビットは、TYPE_GENERAL_ROTATIONフラグと相互に排他的です。 -
TYPE_GENERAL_ROTATION
public static final int TYPE_GENERAL_ROTATIONこのフラグ・ビットは、このオブジェクトによって定義される変換が、ほかのフラグ・ビットによって指定される変換に加えて、任意の角度による回転を実行することを示します。 回転では、ベクトルの長さを変えずに、元の方向にかかわりなく同じ量だけベクトルの角度を変更します。 このフラグ・ビットは、TYPE_QUADRANT_ROTATIONフラグと相互に排他的です。 -
TYPE_MASK_ROTATION
public static final int TYPE_MASK_ROTATIONこの定数は、回転フラグ・ビットのいずれかのビット・マスクです。- 導入されたバージョン:
- 1.2
- 関連項目:
-
TYPE_GENERAL_TRANSFORM
public static final int TYPE_GENERAL_TRANSFORMこの定数は、このオブジェクトによって定義される変換が、入力座標の任意の変換を実行することを示します。 この変換を上記の定数のいずれかに分類される場合、型は定数TYPE_IDENTITYか、この変換が実行するさまざまな座標変換のための適切なフラグ・ビットの組み合わせのどちらかになります。
-
-
コンストラクタの詳細
-
AffineTransform
public AffineTransform()恒等変換を表現する新しいAffineTransform
を構築します。- 導入されたバージョン:
- 1.2
-
AffineTransform
public 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
-
AffineTransform
public AffineTransform(float[] flatmatrix) 3×3変換行列の4つの非平行移動エントリまたは6つの指定可能エントリのどちらかを表現する浮動小数点値の配列から、新しいAffineTransform
を構築します。 各値は、配列から{ m00 m10 m01 m11 [m02 m12]}という形式で取り出されます。- パラメータ:
flatmatrix
- 新しいAffineTransform
オブジェクトに設定される値を含むfloat配列。 配列の長さは4以上と見なされます。 配列の長さが6より小さい場合、最初の4つの値のみが取得されます。 配列の長さが6より大きい場合、最初の6つの値が取得される。- 導入されたバージョン:
- 1.2
-
AffineTransform
public 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
-
AffineTransform
public AffineTransform(double[] flatmatrix) 3×3変換行列の4つの非平行移動エントリまたは6つの指定可能エントリのどちらかを表現する倍精度値の配列から、新しいAffineTransform
を構築します。 各値は、配列から{ m00 m10 m01 m11 [m02 m12]}という形式で取り出されます。- パラメータ:
flatmatrix
- 新しいAffineTransform
オブジェクトに設定される値を含むdouble配列。 配列の長さは4以上と見なされます。 配列の長さが6より小さい場合、最初の4つの値のみが取得されます。 配列の長さが6より大きい場合、最初の6つの値が取得される。- 導入されたバージョン:
- 1.2
-
-
メソッドの詳細
-
getTranslateInstance
public static AffineTransform getTranslateInstance(double tx, double ty) 平行移動変換を表現する変換を返します。 返される変換の行列表現は、次のようになります。[ 1 0 tx ] [ 0 1 ty ] [ 0 0 1 ]
- パラメータ:
tx
- 座標がX軸方向で平行移動される距離ty
- 座標がY軸方向で平行移動される距離- 戻り値:
- 指定されたベクトルで作成された、平行移動変換を表す
AffineTransform
オブジェクト。 - 導入されたバージョン:
- 1.2
-
getRotateInstance
public 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
-
getRotateInstance
public 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
-
getRotateInstance
public 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
-
getRotateInstance
public 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
-
getQuadrantRotateInstance
public static AffineTransform getQuadrantRotateInstance(int numquadrants) 指定された数の四分円だけ座標を回転させる変換を返します。 この操作は、次を呼び出すのと同等です。AffineTransform.getRotateInstance(numquadrants * Math.PI / 2.0);
正の数の四分円だけ回転すると、正のX軸の点が正のY軸に向かって回転します。- パラメータ:
numquadrants
- 回転させる90度の弧の数- 戻り値:
- 指定された数の四分円だけ座標を回転させる
AffineTransform
オブジェクト。 - 導入されたバージョン:
- 1.6
-
getQuadrantRotateInstance
public 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
-
getScaleInstance
public static AffineTransform getScaleInstance(double sx, double sy) スケーリング変換を表現する変換を返します。 返される変換の行列表現は、次のようになります。[ sx 0 0 ] [ 0 sy 0 ] [ 0 0 1 ]
- パラメータ:
sx
- 座標をX軸方向にスケーリングするために使う係数sy
- 座標をY軸方向にスケーリングするために使う係数- 戻り値:
- 指定された係数で座標をスケーリングする
AffineTransform
オブジェクト。 - 導入されたバージョン:
- 1.2
-
getShearInstance
public 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
-
getType
public int getType()この変換の変換プロパティを記述するフラグ・ビットを返します。 返される値は、定数TYPE_IDENTITYまたはTYPE_GENERAL_TRANSFORMのどちらか、あるいは適切なフラグ・ビットの組合せになります。 フラグ・ビットの有効な組み合わせは、TYPE_UNIFORM_SCALEフラグ・ビットまたはTYPE_GENERAL_SCALEフラグ・ビットのどちらかと、TYPE_QUADRANT_ROTATIONフラグ・ビットまたはTYPE_GENERAL_ROTATIONフラグ・ビットのどちらかに加えて、TYPE_TRANSLATIONフラグ・ビットを結合する排他的論理和の演算です。- 戻り値:
- この変換に適用される任意の指定フラグによる論理和の組み合わせ
- 導入されたバージョン:
- 1.2
- 関連項目:
-
getDeterminant
public double getDeterminant()変換の行列表現の行列式を返します。 行列式は、逆変換の存在を判定するためにも、XとYのスケーリングの組み合わせによる変換を表現する1つの値を取得するためにも使用できます。行列式がゼロでない場合、この変換には逆変換が存在し、逆変換に依存するさまざまなメソッドは
NoninvertibleTransformException
をスローする必要がありません。 行列式がゼロの場合、この変換はすべての入力座標を線または点にマップするので逆変換できません。 行列式が十分にゼロに近い場合、逆変換オペレーションは意味のある結果を出せるだけの精度を確保できない場合があります。getType
メソッドで示されるように、この変換が一様なスケーリングを表現する場合、行列式はすべての点が原点を基準に拡張または縮小される一様なスケーリング係数の2乗も表します。 この変換が一様でないスケーリングまたはより汎用的な変換を表現する場合、行列式が表す値は、逆変換が可能かどうかを判定するためだけに使用できます。算術的に、行列式は次の公式で計算されます。
| m00 m01 m02 | | m10 m11 m12 | = m00 * m11 - m01 * m10 | 0 0 1 |
- 戻り値:
- 座標を変換するために使用される行列の行列式。
- 導入されたバージョン:
- 1.2
- 関連項目:
-
getMatrix
public 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
public 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
- 関連項目:
-
getScaleY
public 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
- 関連項目:
-
getShearX
public double getShearX()3×3アフィン変換行列のX座標シャーリング要素(m01)を返します。- 戻り値:
- アフィン変換行列のシャーリング要素のX座標を表すdouble値。
- 導入されたバージョン:
- 1.2
- 関連項目:
-
getShearY
public double getShearY()3×3アフィン変換行列のY座標シャーリング要素(m10)を返します。- 戻り値:
- アフィン変換行列のシャーリング要素のY座標を表すdouble値。
- 導入されたバージョン:
- 1.2
- 関連項目:
-
getTranslateX
public double getTranslateX()3×3アフィン変換行列の平行移動要素(m02)のX座標を返します。- 戻り値:
- アフィン変換行列の平行移動要素のX座標を表すdouble値。
- 導入されたバージョン:
- 1.2
- 関連項目:
-
getTranslateY
public double getTranslateY()3×3アフィン変換行列の平行移動要素(m12)のY座標を返します。- 戻り値:
- アフィン変換行列の平行移動要素のY座標を表すdouble値。
- 導入されたバージョン:
- 1.2
- 関連項目:
-
translate
public 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
-
rotate
public 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
-
rotate
public 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
-
rotate
public void rotate(double vecx, double vecy) この変換を、回転ベクトルに従って座標を回転させる変換と連結します。 すべての座標は原点を中心に同じ量だけ回転します。 この回転量で、元の正のX軸に沿った座標は、原点から指定されたベクトル座標を指すベクトルにそろえられます。vecx
とvecy
の両方が0.0の場合、この変換に追加の回転は行われません。 この操作は、次を呼び出すのと同等です。rotate(Math.atan2(vecy, vecx));
- パラメータ:
vecx
- 回転ベクトルのX座標vecy
- 回転ベクトルのY座標- 導入されたバージョン:
- 1.6
-
rotate
public 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
-
quadrantRotate
public void quadrantRotate(int numquadrants) この変換を、指定された数の四分円だけ座標を回転させる変換と連結します。 これは、次を呼び出すのと同等です。rotate(numquadrants * Math.PI / 2.0);
正の数の四分円だけ回転すると、正のX軸の点が正のY軸に向かって回転します。- パラメータ:
numquadrants
- 回転させる90度の弧の数- 導入されたバージョン:
- 1.6
-
quadrantRotate
public 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
-
scale
public 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
-
shear
public 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
-
setToIdentity
public void setToIdentity()この変換を恒等変換に設定し直します。- 導入されたバージョン:
- 1.2
-
setToTranslation
public void setToTranslation(double tx, double ty) この変換を平行移動変換に設定します。 この変換を表現する行列は次のようになります。[ 1 0 tx ] [ 0 1 ty ] [ 0 0 1 ]
- パラメータ:
tx
- 座標がX軸方向で平行移動される距離ty
- 座標がY軸方向で平行移動される距離- 導入されたバージョン:
- 1.2
-
setToRotation
public void setToRotation(double theta) この変換を回転変換に設定します。 この変換を表現する行列は次のようになります。[ cos(theta) -sin(theta) 0 ] [ sin(theta) cos(theta) 0 ] [ 0 0 1 ]
正の角度thetaで回転すると、正のX軸の点が正のY軸に向かって回転します。 前述の「90度回転の処理」の説明も参照してください。- パラメータ:
theta
- ラジアンで計測した回転角度- 導入されたバージョン:
- 1.2
-
setToRotation
public 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
-
setToRotation
public void setToRotation(double vecx, double vecy) この変換を、回転ベクトルに従って座標を回転させる回転変換に設定します。 すべての座標は原点を中心に同じ量だけ回転します。 この回転量で、元の正のX軸に沿った座標は、原点から指定されたベクトル座標を指すベクトルにそろえられます。vecx
とvecy
の両方が0.0の場合、変換は恒等変換に設定されます。 この操作は、次を呼び出すのと同等です。setToRotation(Math.atan2(vecy, vecx));
- パラメータ:
vecx
- 回転ベクトルのX座標vecy
- 回転ベクトルのY座標- 導入されたバージョン:
- 1.6
-
setToRotation
public 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
-
setToQuadrantRotation
public void setToQuadrantRotation(int numquadrants) この変換を、指定された数の四分円だけ座標を回転させる回転変換に設定します。 この操作は、次を呼び出すのと同等です。setToRotation(numquadrants * Math.PI / 2.0);
正の数の四分円だけ回転すると、正のX軸の点が正のY軸に向かって回転します。- パラメータ:
numquadrants
- 回転させる90度の弧の数- 導入されたバージョン:
- 1.6
-
setToQuadrantRotation
public 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
-
setToScale
public void setToScale(double sx, double sy) この変換をスケーリング変換に設定します。 この変換を表現する行列は次のようになります。[ sx 0 0 ] [ 0 sy 0 ] [ 0 0 1 ]
- パラメータ:
sx
- 座標をX軸方向にスケーリングするために使う係数sy
- 座標をY軸方向にスケーリングするために使う係数- 導入されたバージョン:
- 1.2
-
setToShear
public void setToShear(double shx, double shy) この変換をシャーリング変換に設定します。 この変換を表現する行列は次のようになります。[ 1 shx 0 ] [ shy 1 0 ] [ 0 0 1 ]
- パラメータ:
shx
- Y座標の係数で座標を正のX軸の方向に移動するために使う乗数shy
- X座標の係数で座標を正のY軸の方向に移動するために使う乗数- 導入されたバージョン:
- 1.2
-
setTransform
public void setTransform(AffineTransform Tx) この変換を、指定されたAffineTransform
オブジェクト内の変換のコピーに設定します。- パラメータ:
Tx
- 変換のコピー元のAffineTransform
オブジェクト- 導入されたバージョン:
- 1.2
-
setTransform
public 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
-
concatenate
public void concatenate(AffineTransform Tx) AffineTransform Tx
をこのAffineTransform
Cxに連結し、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
public void preConcatenate(AffineTransform Tx) Tx
が既存のユーザー空間に対してではなく絶対ピクセル空間に対して座標変換を変更するような、あまり一般的でない方法でこのAffineTransform
Cxに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
- 関連項目:
-
createInverse
public AffineTransform createInverse() throws NoninvertibleTransformException逆変換を表現するAffineTransform
オブジェクトを返します。 この変換Txの逆変換Tx'は、Txによって変換された座標をその元の座標にマップして戻します。 つまり、Tx'(Tx(p))= p = Tx(Tx'(p))です。この変換がすべての座標を点や線にマップする場合、変換は逆写像を持ちません。これは、転送先の点や線にない座標が逆写像を持たないためです。
getDeterminant
メソッドを使うと、この変換が逆写像を持つかどうかを判定できます。この変換が逆写像を持たない場合、createInverse
メソッドが呼び出されると、例外がスローされます。- 戻り値:
- 逆変換を表す新しい
AffineTransform
オブジェクト。 - 例外:
NoninvertibleTransformException
- 行列を反転できない場合。- 導入されたバージョン:
- 1.2
- 関連項目:
-
invert
public void invert() throws NoninvertibleTransformExceptionこの変換を自身の逆変換に設定します。 この変換Txの逆変換Tx'は、Txによって変換された座標をその元の座標にマップして戻します。 つまり、Tx'(Tx(p))= p = Tx(Tx'(p))です。この変換がすべての座標を点や線にマップする場合、変換は逆写像を持ちません。これは、転送先の点や線にない座標が逆写像を持たないためです。
getDeterminant
メソッドを使うと、この変換が逆写像を持つかどうかを判定できます。この変換が逆写像を持たない場合、invert
メソッドが呼び出されると、例外がスローされます。- 例外:
NoninvertibleTransformException
- 行列を反転できない場合。- 導入されたバージョン:
- 1.6
- 関連項目:
-
transform
指定されたptSrc
を変換して、その結果をptDst
に格納します。ptDst
がnull
の場合は、新しいPoint2D
オブジェクトが割り当てられてから、変換の結果がこのオブジェクトに格納されます。 どちらの場合も、便宜上、変換後の点を格納しているptDst
が返されます。ptSrc
とptDst
が同じオブジェクトの場合、入力点は変換後の点で適切に上書きされます。- パラメータ:
ptSrc
- 変換される指定されたPoint2D
ptDst
-ptSrc
を変換した結果を格納する指定されたPoint2D
- 戻り値:
ptSrc
を変換し、その結果をptDst
に格納した後のptDst
。- 導入されたバージョン:
- 1.2
-
transform
この変換によってポイント・オブジェクトの配列を変換します。ptDst
配列のいずれかの要素がnull
である場合は、新しいPoint2D
オブジェクトが割り当てられ、変換の結果が格納される前にその要素に格納されます。このメソッドでは、結果を、転送元配列のそれ以降の計算の転送元として使用される
Point2D
オブジェクトに格納することにより発生する問題を回避するための予防措置が何も取られていません。 このメソッドでは、指定されたPoint2D
オブジェクトが同じ1つの点変換操作の転送元と転送先の両方である場合、別のオペランドの上に結果が格納されないようにするために、計算が完了するまで結果が格納されないことが保証されます。 ただし、ある操作の転送先Point2D
オブジェクトが、転送元配列のそれ以降の別の操作の転送元Point2D
オブジェクトと同じオブジェクトである場合、その点にある元の座標は変換可能になる前に上書きされます。- パラメータ:
ptSrc
- 転送元のポイント・オブジェクトを含む配列ptDst
- 変換ポイント・オブジェクトが返される配列srcOff
- 転送元配列内の変換される最初のポイント・オブジェクトへのオフセットdstOff
- 転送先配列に格納される最初の変換されたポイント・オブジェクトの位置へのオフセットnumPts
- 変換されるポイント・オブジェクトの数- 導入されたバージョン:
- 1.2
-
transform
public 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
-
transform
public 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
-
transform
public 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
-
transform
public 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
-
inverseTransform
public Point2D inverseTransform(Point2D ptSrc, Point2D ptDst) throws NoninvertibleTransformException 指定されたptSrc
を逆変換して、その結果をptDst
に格納します。ptDst
がnull
の場合、新しいPoint2D
オブジェクトが割り当てられてから、変換の結果がこのオブジェクトに格納されます。 どちらの場合も、便宜上、変換後の点を格納しているptDst
が返されます。ptSrc
とptDst
が同じオブジェクトの場合、入力点は変換後の点で適切に上書きされます。- パラメータ:
ptSrc
- 逆変換される点ptDst
- 結果として得られる変換された点- 戻り値:
- 逆変換の結果を含む
ptDst
。 - 例外:
NoninvertibleTransformException
- 行列を反転できない場合。- 導入されたバージョン:
- 1.2
-
inverseTransform
public 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
-
deltaTransform
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
-
deltaTransform
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
- 変換されるベクトル座標ペアの数- 導入されたバージョン:
- 1.2
-
createTransformedShape
指定されたShape
がこの変換によって変換されたあと、その幾何学的図形で定義された新しいShape
オブジェクトを返します。- パラメータ:
pSrc
- この変換で変換される指定されたShape
オブジェクト。- 戻り値:
- 変換された
Shape
の幾何学的図形を定義する新しいShape
オブジェクト。pSrc
がnullの場合はnull。 - 導入されたバージョン:
- 1.2
-
toString
public String toString()このObject
の値を表すString
を返します。 -
isIdentity
public boolean isIdentity()このAffineTransform
が恒等変換である場合にtrue
を返します。- 戻り値:
- この
AffineTransform
が恒等変換である場合はtrue
。それ以外の場合はfalse
。 - 導入されたバージョン:
- 1.2
-
clone
public Object clone()このAffineTransform
オブジェクトのコピーを返します。 -
hashCode
public int hashCode()この変換のハッシュ・コードを返します。 -
equals
public boolean equals(Object obj) このAffineTransform
が、指定された引数と同じアフィン座標変換を表現する場合にtrue
を返します。
-