appendix> 2D> AffineTransform | TOPUPPREVNEXT |
Javaでは次のように分類されます。
分類 | 対応する定数 | 概要 |
---|---|---|
恒等変換 | TYPE_IDENTITY | 変換しない |
平行移動 | TYPE_TRANSLATION | 平行移動 |
回転(任意角) | TYPE_GENERAL_ROTATION | 任意の角だけ回転させる |
回転(90度単位) | TYPE_QUADRANT_ROTATION | 90度単位の回転 |
拡大・縮小(一般) | TYPE_GENERAL_SCALE | 縦と横の倍率を指定 |
拡大・縮小(縦横等倍) | TYPE_UNIFORM_SCALE | 縦と横を同じ倍率 |
その他の変換 | TYPE_GENERAL_TRANSFORM | 上記のm00 〜 m12 を指定した一般の変換 |
コンストラクタ | 機能 |
---|---|
AffineTransform ( ) | 恒等変換をおこなう新しいアフィン変換を生成します。 |
AffineTransform (
double m00 , double m10 ,
double m01 , double m11 , double m02 , double m12 ) |
m00 〜 m12 を指定してアフィン変換を生成します。 パラメータの順序に注意してください。 |
AffineTransform ( double[] flatmatrix ) | flatmatrix は次のいずれか。
{ m00, m10, m01, m11 }
配列の長さが6より小さい場合は最初の4つ、
配列の長さが6より大きい場合は最初の6つが使用されます。
{ m00, m10, m01, m11, m02, m12 } |
メソッド | 機能 |
---|---|
static AffineTransform getRotateInstance( double theta ) |
回転をおこなう変換を返します。theta ラジアンだけ、
原点を中心に時計回りに回転させる変換です。行列表現は以下のようになります。
|
static AffineTransform getRotateInstance( double theta, double x, double y ) |
回転をおこなう変換を返します。theta ラジアンだけ、
点(x, y)を中心に時計回りに回転させる変換です。
行列表現は以下のようになります。
|
static AffineTransform getScaleInstance ( double sx , double sy ) |
x方向にsx 倍、
y方向にsy 倍する拡大・縮小変換です。
行列表現は以下のようになります。
|
static AffineTransform getShearInstance ( double sx , double sy ) |
シャーリング変換。 行列表現は以下のようになります。
|
static AffineTransform getTranslateInstance ( double sx , double sy ) |
平行移動。 行列表現は以下のようになります。
|
メソッド | 機能 |
---|---|
void setToIdentity ( ) | この変換を恒等変換に設定します。 |
void setToRotation ( double theta ) void setToRotation ( double theta , double x , double y ) |
この変換を回転変換に設定します。 設定される変換はファクトリメソッド getRotateInstance と同じです。 |
void setToScale ( double sx , double sy ) | この変換を拡大・縮小変換に設定します。 設定される変換は、ファクトリメソッド getScaleInstance と同じです。 |
void setToShear ( double sx , double sy ) | この変換をシャーリング変換に設定します。 設定される変換はファクトリメソッド getShearInstance と同じです。 |
void setToTranslation ( double sx , sy ) | この変換を平行移動変換に設定します。 設定される変換はファクトリメソッド getTranslateInstance と同じです。 |
void setTransform ( AffineTransform af ) | この変換をアフィン変換af と同じ変換(コピー)に再設定します。 |
void setTransform (
double m00 , double m10 ,
double m01 , double m11 , double m02 , double m12 ) |
この変換を m00 〜 m12 で表現されるアフィン変換に再設定します。 |
合成した順序と逆の順序で、変換が適用されます。
メソッド | 機能 |
---|---|
void concatenate ( AffineTransform at ) | この変換に、アフィン変換 at を合成します。 合成された変換は、「 変換 at を行った後に 合成前の変換を行う 」 のと同じ変換になります。 |
void rotate ( double theta ) void rotate ( double theta , double x , double y) |
この変換に回転変換を合成します。つまり、 回転してから、この変換を行うような新しい変換に変更されます。 |
void scale ( double sx , doube sy ) | この変換に拡大・縮小変換を合成します。つまり、拡大・縮小変換をした後、 この変換をするような新しい変換に変更されます。 |
void shear ( double sx , doube sy ) | この変換にシャーリング変換を合成します。つまり、シャーリング変換をした後、 この変換をするような新しい変換に変更されます。 |
translate ( double sx , double sy ) | この変換に平行移動を合成します。つまり、平行移動してからこの変換を行うような 新しい変換に変更されます。 |
メソッド | 機能 | |||
---|---|---|---|---|
AffineTransform createInverse ( ) | この変換の逆変換を行うアフィン変換を返します。 逆変換ができない場合、NoninvertibleTransformException 例外がスローされます。 たとえば、 | |||
Shape createTransformedShape ( Shape s ) | 図形 s にこの変換をほどこして得られる図形を返します。 | |||
getDeterminant ( ) | 変換の行列表現の行列式の値を返します。行列式の値は
| |||
void getMatrix( double[] flatmatrix ) | このアフィン変換の行列表現
{ m00 m10 m01 m11 m02 m12 }
をflatmatrix に設定します。
配列の長さが4であれば先頭の4つの要素を設定します。
| |||
int getType ( ) | この変換の分類をあらわすフラグビットを返します。返されるビットは
|
座標系を縦横2倍にする。(Graphics2D#setTransform(...))
図形を30度回転する。(Shape#getPathIterator(...))
左右を反転した図形の描画。
更新日:2004-03-22