AffineTransform (Java Platform SE 6) - xrath.com 에서 번역됨

개요 | 패키지 | 클래스 | 사용 | 계층 트리 | 비추천 API | 색인 | 헬프

JavaTM Platform
Standard Ed. 6

전의 클래스 다음의 클래스 | 프레임 있어 프레임 없음
개요: 상자 | 필드 | 생성자 | 메소드 | 상세 : 필드 | 생성자 | 메소드

## java.awt.geom
클래스 AffineTransform

    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` 메소드의 변화(variation)안에는, 배정밀도치의 인수로 회전 각도 (라디안)를 지정하는 것이 있습니다. 이러한 메소드에는, 약 90 번 ( 및 180 번, 270 번, 360 번등의 배수)의 회전에 대해서 특수한 처리가 준비되어 있어 일반적인 4분원 회전은 보다 효율적으로 처리됩니다. 이 특수한 처리에 의해, 90 번의 배수에 근사적인 각도를 정확하게 90 번의 배수로서 취급할 수가 있습니다. 90 번의 수배정도인 경우, 4분원 회전으로서 다루어지는 각도의 범위는 약 0.00000121 번의 폭입니다. 이 섹션에서는, 이러한 특수한 처리가 필요하게 되는 이유와 그 구현 방법에 대해 설명합니다.

90 번은 라디안으로 `PI/2` 와 나타내져 한편 PI 는 초월수 (그 때문에 무리수)이기 (위해)때문에, 90 번의 배수를 라디안으로 계측 된 유한의 배정밀도치로서 정확하게 나타낼 수 없습니다. 그 때문에, 유한의 배수도치를 사용해 4분원 회전 (90, 180, 270, 360 도)을 표현하는 것은 이론적으로 불가능합니다. 배정밀도 부동 소수점치를 사용하면,`PI/2` 의 배수 (0 이외)에 매우 가까운 값을 얻을 수 있습니다만, 정현 (sin) 또는 여현 (cos)으로 정확하게 0.0, 1.0, 또는 -1. 0 을 얻으려면 충분히 가깝다고는 말할 수 없습니다. 그 때문에,`Math.sin()` 및 `Math.cos()` 의 구현에서는,`Math.sin(0.0)` 의 경우를 제외해 0.0 을 돌려줄 것은 없습니다. 다만 같은 구현이어도, 90 번의 배수 마다 일정 범위내의 값에 대해서는, 정확히 1.0 및 -1. 0 을 돌려줍니다. 이것은, 올바른 응답이 1.0 또는 -1. 0 에 매우 가깝기 때문에, 배정밀도의 유효 숫자에서는, 0.0 에 가까운 값의 경우와 동일한 정도의 정확함으로 차이를 나타낼 수가 없기 때문입니다.

이러한 문제에 의한 최종 결과적으로,`Math.sin()` 메소드 및 `Math.cos()` 메소드가 이러한 라디안 베이스의 회전 조작중에 발생하는 행렬의 변경에 대해서 값을 직접 생성하기 위해서 사용되는 경우는, 정현 및 여현으로 취득되는 0.0 이외의 값이 원인으로 행렬이 조금 다르기 (위해)때문에, 얻을 수 있는 변형은 `rotate(Math.PI/2. 0)` 과 같이 간단한 경우여도 4분원 회전으로서 엄밀하게 분류되지 않습니다. 이러한 변형이 4분원 회전으로서 분류되지 않는 경우, 변형의 종류에 근거해 후속의 조작을 최적화하려고 하는 그 이후의 코드는, 가장 범용적인 구현에 위탁됩니다.

4분원 회전은 매우 자주(잘) 행해지는 조작이기 (위해)때문에, 회전을 변형에 적용하는 경우와 얻을 수 있던 변형을 좌표에 적용하는 경우의 양쪽 모두로, 이 클래스는 4분원 회전을 어느 정도 빨리 처리할 수 없으면 안됩니다. 이러한 최적화 처리를 실현하기 위해서(때문에), 라디안으로 계측 된 회전 각도를 사용하는 메소드에서는, 4분원 회전을 의도한 각도를 검출하면(자), 4분원 회전으로서 취급합니다. 그 때문에 이러한 메소드에서는,`Math.sin(theta)` 와 `Math.cos(theta)` 중 한쪽이 정확하게 1.0 또는 -1. 0 을 돌려주는 경우에, 각도 theta 를 4분원 회전으로서 취급합니다. 기준으로서`Math.PI/2. 0` 의 수배정도의 경우에, 이 프로퍼티은 약 0.0000000211 라디안 (또는 0.00000121 번)의 범위에서 true 를 보관 유지합니다.

도입된 버젼:
  1.2
관련 항목:
  직렬화 된 형식

필드의 개요
`static int` | `TYPE_FLIP` 이 flag bit는, 이 객체에 의해 정의되는 변환이, 다른 flag bit에 의해 지정되는 변환에 가세해, 어느 축을 중심으로 하는 경상반전을 실행하는 것을 나타냅니다.
`static int` | `TYPE_GENERAL_ROTATION` 이 flag bit는, 이 객체에 의해 정의되는 변환이, 다른 flag bit에 의해 지정되는 변환에 가세해, 임의의 각도에 의한 회전을 실행하는 것을 나타냅니다.
`static int` | `TYPE_GENERAL_SCALE` 이 flag bit는, 이 객체에 의해 정의되는 변환이, 다른 flag bit에 의해 지정되는 변환에 가세해, 범용적인 슬캘링을 실행하는 것을 나타냅니다.
`static int` | `TYPE_GENERAL_TRANSFORM` 이 정수는, 이 객체에 의해 정의되는 변환이, 입력 좌표의 임의의 변환을 실행하는 것을 나타냅니다.
`static int` | `TYPE_IDENTITY` 이 정수는, 이 객체에 의해 정의되는 변환이 항등변환인 것을 나타냅니다.
`static int` | `TYPE_MASK_ROTATION` 이 정수는, 회전 flag bit의 몇개의 비트 마스크입니다.
`static int` | `TYPE_MASK_SCALE` 이 정수는, 스케일 flag bit의 몇개의 비트 마스크입니다.
`static int` | `TYPE_QUADRANT_ROTATION` 이 flag bit는, 이 객체에 의해 정의되는 변환이, 다른 flag bit에 의해 지정되는 변환에 가세해, 90 번의 배수에 4분원 회전을 실행하는 것을 나타냅니다.
`static int` | `TYPE_TRANSLATION` 이 flag bit는, 이 객체에 의해 정의되는 변환이, 다른 flag bit에 의해 지정되는 변환에 가세해, 1 개의 이동을 실행하는 것을 나타냅니다.
`static int` | `TYPE_UNIFORM_SCALE` 이 flag bit는, 이 객체에 의해 정의되는 변환이, 다른 flag bit에 의해 지정되는 변환에 가세해, 한결같은 슬캘링을 실행하는 것을 나타냅니다.

생성자 의 개요
`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` | `getQuadrantRotateInstance (int numquadrants)` 지정된 수의 4분원만 좌표를 회전시키는 변환을 돌려줍니다.
`static AffineTransform` | `getQuadrantRotateInstance (int numquadrants, double anchorx, double anchory)` 지정된 엥커 포인트를 중심으로 해, 지정된 수의 4분원만 좌표를 회전시키는 변환을 돌려줍니다.
`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` | `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 ()` 이 변환의 변환 프로퍼티을 기술하는 flag bit를 돌려줍니다.
`int` | `hashCode ()` 이 변환의 해시 코드를 돌려줍니다.
`void` | `inverseTransform (double[] srcPts, int srcOff, double[] dstPts, int dstOff, int numPts)` 이 변환에 의해 배정밀도의 좌표의 배열을 역변환합니다.
`Point2D` | `inverseTransform (Point2D ptSrc, Point2D ptDst)` 지정된 `ptSrc` 를 역변환해, 그 결과를 `ptDst` 에 포함합니다.
`void` | `invert ()` 이 변환을 자신의 역변환으로 설정합니다.
`boolean` | `isIdentity ()` 이 `AffineTransform` 이 항등변환인 경우에 `true` 를 돌려줍니다.
`void` | `preConcatenate (AffineTransform Tx)` `Tx` 가 기존의 사용자 공간은 아니고 절대 픽셀 공간을 기준(�좌표변화를 변경하는 등 일반적으로는 그다지 사용되지 않는 방법으로,`AffineTransform` `Tx` 를 이 `AffineTransform` Cx 에 연결합니다.
`void` | `quadrantRotate (int numquadrants)` 이 변환을, 지정된 수의 4분원만 좌표를 회전시키는 변환과 연결합니다.
`void` | `quadrantRotate (int numquadrants, double anchorx, double anchory)` 이 변환을, 지정된 엥커 포인트를 중심으로 해, 지정된 수의 4분원만 좌표를 회전시키는 변환과 연결합니다.
`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` | `setToIdentity ()` 이 변환을 항등변환으로 다시 설정합니다.
`void` | `setToQuadrantRotation (int numquadrants)` 이 변환을, 지정된 수의 4분원만 좌표를 회전시키는 회전 변환으로 설정합니다.
`void` | `setToQuadrantRotation (int numquadrants, double anchorx, double anchory)` 이 변환을, 지정된 엥커 포인트를 중심으로 해, 지정된 수의 4분원만 좌표를 회전시키는, 평행이동 후의 회전 변환으로 설정합니다.
`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 (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`

필드의 상세

### TYPE_IDENTITY

    public static final int TYPE_IDENTITY

  이 정수는, 이 객체에 의해 정의되는 변환이 항등변환인 것을 나타냅니다. 항등변환에서는, 출력 좌표가 항상 입력 좌표와 같게 됩니다. 이 변환이 항등변환이 아닌 경우, 형태는 정수 GENERAL_TRANSFORM 인가, 이 변환이 실행하는 다양한 좌표변화를 위한 적절한 flag bit의 편성의 어딘가에 됩니다.

  도입된 버젼:
    1.2
  관련 항목:
    `TYPE_TRANSLATION` , `TYPE_UNIFORM_SCALE` , `TYPE_GENERAL_SCALE` , `TYPE_FLIP` , `TYPE_QUADRANT_ROTATION` , `TYPE_GENERAL_ROTATION` , `TYPE_GENERAL_TRANSFORM` , `getType()` , 정수 필드치

### TYPE_TRANSLATION

    public static final int TYPE_TRANSLATION

  이 flag bit는, 이 객체에 의해 정의되는 변환이, 다른 flag bit에 의해 지정되는 변환에 가세해, 1 개의 이동을 실행하는 것을 나타냅니다. 이동에서는, 벡터의 길이나 각도를 바꾸지 않고 좌표를 x 방향과 y 방향으로 일정량만 이동합니다.

  도입된 버젼:
    1.2
  관련 항목:
    `TYPE_IDENTITY` , `TYPE_UNIFORM_SCALE` , `TYPE_GENERAL_SCALE` , `TYPE_FLIP` , `TYPE_QUADRANT_ROTATION` , `TYPE_GENERAL_ROTATION` , `TYPE_GENERAL_TRANSFORM` , `getType()` , 정수 필드치

### TYPE_UNIFORM_SCALE

    public static final int TYPE_UNIFORM_SCALE

  이 flag bit는, 이 객체에 의해 정의되는 변환이, 다른 flag bit에 의해 지정되는 변환에 가세해, 한결같은 슬캘링을 실행하는 것을 나타냅니다. 일률적인 슬캘링에서는, 벡터간의 각도를 바꾸지 않고 벡터의 길이를 x 방향과 y 방향의 어느 쪽에도 일정량만 곱셈합니다. 이 flag bit는, TYPE_GENERAL_SCALE 플래그와 서로 배타적입니다.

  도입된 버젼:
    1.2
  관련 항목:
    `TYPE_IDENTITY` , `TYPE_TRANSLATION` , `TYPE_GENERAL_SCALE` , `TYPE_FLIP` , `TYPE_QUADRANT_ROTATION` , `TYPE_GENERAL_ROTATION` , `TYPE_GENERAL_TRANSFORM` , `getType()` , 정수 필드치

### TYPE_GENERAL_SCALE

    public static final int TYPE_GENERAL_SCALE

  이 flag bit는, 이 객체에 의해 정의되는 변환이, 다른 flag bit에 의해 지정되는 변환에 가세해, 범용적인 슬캘링을 실행하는 것을 나타냅니다. 범용적인 슬캘링에서는, 수직인 벡터간의 각도를 바꾸지 않고 벡터의 길이를 x 방향과 y 방향으로 다른 양만 곱셈합니다. 이 flag bit는, TYPE_UNIFORM_SCALE 플래그와 서로 배타적입니다.

  도입된 버젼:
    1.2
  관련 항목:
    `TYPE_IDENTITY` , `TYPE_TRANSLATION` , `TYPE_UNIFORM_SCALE` , `TYPE_FLIP` , `TYPE_QUADRANT_ROTATION` , `TYPE_GENERAL_ROTATION` , `TYPE_GENERAL_TRANSFORM` , `getType()` , 정수 필드치

### TYPE_MASK_SCALE

    public static final int TYPE_MASK_SCALE

  이 정수는, 스케일 flag bit의 몇개의 비트 마스크입니다.

  도입된 버젼:
    1.2
  관련 항목:
    `TYPE_UNIFORM_SCALE` , `TYPE_GENERAL_SCALE` , 정수 필드치

### TYPE_FLIP

    public static final int TYPE_FLIP

  이 flag bit는, 이 객체에 의해 정의되는 변환이, 다른 flag bit에 의해 지정되는 변환에 가세해, 어느 축을 중심으로 하는 경상반전을 실행하는 것을 나타냅니다. 경상반전에 의해, 일반적으로은 오른손의 좌표계가 왼손의 좌표계로 변경됩니다. 오른손의 좌표계는, 오른손의 엄지의 첨단을 응시하고 있는 상태로 엄지 이외의 손가락을 굽히는 것과 같은 방향으로, 정의 X 축이 반시계방향으로 회전해 정의 Y 축으로 겹치는 것입니다. 왼손의 좌표계는, 왼손의 엄지 이외를 굽히는 것과 같은 방향으로, 정의 X 축이 시계 방향으로 회전해 정의 Y 축으로 겹치는 것입니다. 적절한 조정 회전을 지정하면(자) 회전의 각도는 모두 같게 되므로, 원의 반전 또는 밀러 변환의 각도를 판정하는 산술적 방법은 없습니다.

  도입된 버젼:
    1.2
  관련 항목:
    `TYPE_IDENTITY` , `TYPE_TRANSLATION` , `TYPE_UNIFORM_SCALE` , `TYPE_GENERAL_SCALE` , `TYPE_QUADRANT_ROTATION` , `TYPE_GENERAL_ROTATION` , `TYPE_GENERAL_TRANSFORM` , `getType()` , 정수 필드치

### TYPE_QUADRANT_ROTATION

    public static final int TYPE_QUADRANT_ROTATION

  이 flag bit는, 이 객체에 의해 정의되는 변환이, 다른 flag bit에 의해 지정되는 변환에 가세해, 90 번의 배수에 4분원 회전을 실행하는 것을 나타냅니다. 회전에서는, 벡터의 길이를 바꾸지 않고 , 원의 방향 에 관계없이 같은 양만 벡터의 각도를 변경합니다. 이 flag bit는, TYPE_GENERAL_ROTATION 플래그와 서로 배타적입니다.

  도입된 버젼:
    1.2
  관련 항목:
    `TYPE_IDENTITY` , `TYPE_TRANSLATION` , `TYPE_UNIFORM_SCALE` , `TYPE_GENERAL_SCALE` , `TYPE_FLIP` , `TYPE_GENERAL_ROTATION` , `TYPE_GENERAL_TRANSFORM` , `getType()` , 정수 필드치

### TYPE_GENERAL_ROTATION

    public static final int TYPE_GENERAL_ROTATION

  이 flag bit는, 이 객체에 의해 정의되는 변환이, 다른 flag bit에 의해 지정되는 변환에 가세해, 임의의 각도에 의한 회전을 실행하는 것을 나타냅니다. 회전에서는, 벡터의 길이를 바꾸지 않고 , 원의 방향 에 관계없이 같은 양만 벡터의 각도를 변경합니다. 이 flag bit는, TYPE_QUADRANT_ROTATION 플래그와 서로 배타적입니다.

  도입된 버젼:
    1.2
  관련 항목:
    `TYPE_IDENTITY` , `TYPE_TRANSLATION` , `TYPE_UNIFORM_SCALE` , `TYPE_GENERAL_SCALE` , `TYPE_FLIP` , `TYPE_QUADRANT_ROTATION` , `TYPE_GENERAL_TRANSFORM` , `getType()` , 정수 필드치

### TYPE_MASK_ROTATION

    public static final int TYPE_MASK_ROTATION

  이 정수는, 회전 flag bit의 몇개의 비트 마스크입니다.

  도입된 버젼:
    1.2
  관련 항목:
    `TYPE_QUADRANT_ROTATION` , `TYPE_GENERAL_ROTATION` , 정수 필드치

### TYPE_GENERAL_TRANSFORM

    public static final int TYPE_GENERAL_TRANSFORM

  이 정수는, 이 객체에 의해 정의되는 변환이, 입력 좌표의 임의의 변환을 실행하는 것을 나타냅니다. 이 변환을 상기의 정수의 어느 쪽인가에 분류되는 경우, 형태는 정수 TYPE_IDENTITY 인가, 이 변환이 실행하는 다양한 좌표변화를 위한 적절한 flag bit의 편성의 어딘가에 됩니다.

  도입된 버젼:
    1.2
  관련 항목:
    `TYPE_IDENTITY` , `TYPE_TRANSLATION` , `TYPE_UNIFORM_SCALE` , `TYPE_GENERAL_SCALE` , `TYPE_FLIP` , `TYPE_QUADRANT_ROTATION` , `TYPE_GENERAL_ROTATION` , `getType()` , 정수 필드치

생성자 의 상세

### AffineTransform

    public AffineTransform()

  항등변환을 표현하는 새로운 `AffineTransform` 를 구축합니다.

  도입된 버젼:
    1.2

### AffineTransform

    public AffineTransform(AffineTransform  Tx)

  지정된 `AffineTransform` 객체의 카피인, 새로운 `AffineTransform` 를 구축합니다.

  파라미터:
    `Tx` - 카피하는 `AffineTransform` 객체
  도입된 버젼:
    1.2

### AffineTransform

    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)

  지정된 수의 4분원만 좌표를 회전시키는 변환을 돌려줍니다. 이 조작은, 이하를 호출하는 것과 동등합니다.

           AffineTransform.getRotateInstance(numquadrants * Math.PI / 2.0);

  정의 수의 4분원만 회전하면(자), 정의 X 축의 점이 정의 Y 축으로 향해 회전합니다.

  파라미터:
    `numquadrants` - 회전시키는 90 번의 호의 수
  반환값:
    지정된 수의 4분원만 좌표를 회전시키는 `AffineTransform` 객체
  도입된 버젼:
    1.6

### getQuadrantRotateInstance

    public static AffineTransform  getQuadrantRotateInstance(int numquadrants,
                                                            double anchorx,
                                                            double anchory)

  지정된 엥커 포인트를 중심으로 해, 지정된 수의 4분원만 좌표를 회전시키는 변환을 돌려줍니다. 이 조작은, 이하를 호출하는 것과 동등합니다.

           AffineTransform.getRotateInstance(numquadrants * Math.PI / 2.0,
                                             anchorx, anchory);

  정의 수의 4분원만 회전하면(자), 정의 X 축의 점이 정의 Y 축으로 향해 회전합니다.

  파라미터:
    `numquadrants` - 회전시키는 90 번의 호의 수
    `anchorx` - 회전의 엥커 포인트의 X 좌표
    `anchory` - 회전의 엥커 포인트의 Y 좌표
  반환값:
    지정된 엥커 포인트를 중심으로 해, 지정된 수의 4분원만 좌표를 회전시킨다 `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 축방향으로 슬캘링 하기 위해서 사용하는 계수
  반환값:
    지정된 계수로 좌표를 scaled다 `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()

  이 변환의 변환 프로퍼티을 기술하는 flag bit를 돌려줍니다. 반환되는 값은, 정수 TYPE_IDENTITY 또는 TYPE_GENERAL_TRANSFORM 의 어느 쪽인지, 혹은 적절한 flag bit의 편성이 됩니다. flag bit의 유효한 편성은, TYPE_UNIFORM_SCALE flag bit 또는 TYPE_GENERAL_SCALE flag bit의 어느 쪽일까하고, TYPE_QUADRANT_ROTATION flag bit 또는 TYPE_GENERAL_ROTATION flag bit의 어딘가에 더해, TYPE_TRANSLATION flag bit를 결합하는 배타적 논리합의 연산입니다.

  반환값:
    이 변환에 적용되는 임의의 지정 플래그에 의한다 논리합의 편성
  도입된 버젼:
    1.2
  관련 항목:
    `TYPE_IDENTITY` , `TYPE_TRANSLATION` , `TYPE_UNIFORM_SCALE` , `TYPE_GENERAL_SCALE` , `TYPE_QUADRANT_ROTATION` , `TYPE_GENERAL_ROTATION` , `TYPE_GENERAL_TRANSFORM`

### getDeterminant

    public double getDeterminant()

  변환의 행렬 표현의 행렬식을 돌려줍니다. 행렬식은, 역변환의 존재를 판정하기 위해서도, X 와 Y 의 슬캘링의 편성에 의한 변환을 표현하는 1 개의 값을 취득하기 위해서도 사용할 수 있습니다.

  행렬식이 제로가 아닌 경우, 이 변환에는 역변환이 존재해, 역변환에 의존하는 다양한 메소드는 `NoninvertibleTransformException` 를 throw 할 필요가 없습니다. 행렬식이 제로의 경우, 이 변환은 모든 입력 좌표를 선 또는 점에 맵 하므로 역변환할 수 없습니다. 행렬식이 충분히 제로에 가까운 경우, 역변환 오퍼레이션은 의미가 있는 결과를 낼 수 있을 뿐(만큼)의 정밀도를 확보 가능한 있고 경우가 있습니다.

  `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`

### 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()` , `getScaleY()` , `getShearX()` , `getShearY()` , `getTranslateX()` , `getTranslateY()`

### getScaleX

    public double getScaleX()

  3×3 아핀 변환 행렬의 X 좌표 슬캘링 요소 (m00)를 돌려줍니다.

  반환값:
    아핀 변환 행렬의 슬캘링 요소의 X 좌표를 나타내는 double 치
  도입된 버젼:
    1.2
  관련 항목:
    `getMatrix(double[])`

### getScaleY

    public double getScaleY()

  3×3 아핀 변환 행렬의 Y 좌표 슬캘링 요소 (m11)를 돌려줍니다.

  반환값:
    아핀 변환 행렬의 슬캘링 요소의 Y 좌표를 나타내는 double 치
  도입된 버젼:
    1.2
  관련 항목:
    `getMatrix(double[])`

### getShearX

    public double getShearX()

  3×3 아핀 변환 행렬의 X 좌표 셔링 요소 (m01)를 돌려줍니다.

  반환값:
    아핀 변환 행렬의 셔링 요소의 X 좌표를 나타내는 double 치
  도입된 버젼:
    1.2
  관련 항목:
    `getMatrix(double[])`

### getShearY

    public double getShearY()

  3×3 아핀 변환 행렬의 Y 좌표 셔링 요소 (m10)를 돌려줍니다.

  반환값:
    아핀 변환 행렬의 셔링 요소의 Y 좌표를 나타내는 double 치
  도입된 버젼:
    1.2
  관련 항목:
    `getMatrix(double[])`

### getTranslateX

    public double getTranslateX()

  3×3 아핀 변환 행렬의 평행이동 요소 (m02)의 X 좌표를 돌려줍니다.

  반환값:
    아핀 변환 행렬의 평행이동 요소의 X 좌표를 나타내는 double 치
  도입된 버젼:
    1.2
  관련 항목:
    `getMatrix(double[])`

### getTranslateY

    public double getTranslateY()

  3×3 아핀 변환 행렬의 평행이동 요소 (m12)의 Y 좌표를 돌려줍니다.

  반환값:
    아핀 변환 행렬의 평행이동 요소의 Y 좌표를 나타내는 double 치
  도입된 버젼:
    1.2
  관련 항목:
    `getMatrix(double[])`

### 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)

  이 변환을, 지정된 수의 4분원만 좌표를 회전시키는 변환과 연결합니다. 이것은, 이하를 호출하는 것과 동등합니다.

           rotate(numquadrants * Math.PI / 2.0);

  정의 수의 4분원만 회전하면(자), 정의 X 축의 점이 정의 Y 축으로 향해 회전합니다.

  파라미터:
    `numquadrants` - 회전시키는 90 번의 호의 수
  도입된 버젼:
    1.6

### quadrantRotate

    public void quadrantRotate(int numquadrants,
                               double anchorx,
                               double anchory)

  이 변환을, 지정된 엥커 포인트를 중심으로 해, 지정된 수의 4분원만 좌표를 회전시키는 변환과 연결합니다. 이 메소드는, 이하를 호출하는 것과 동등합니다.

           rotate(numquadrants * Math.PI / 2.0, anchorx, anchory);

  정의 수의 4분원만 회전하면(자), 정의 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)

  이 변환을, 지정된 수의 4분원만 좌표를 회전시키는 회전 변환으로 설정합니다. 이 조작은, 이하를 호출하는 것과 동등합니다.

           setToRotation(numquadrants * Math.PI / 2.0);

  정의 수의 4분원만 회전하면(자), 정의 X 축의 점이 정의 Y 축으로 향해 회전합니다.

  파라미터:
    `numquadrants` - 회전시키는 90 번의 호의 수
  도입된 버젼:
    1.6

### setToQuadrantRotation

    public void setToQuadrantRotation(int numquadrants,
                                      double anchorx,
                                      double anchory)

  이 변환을, 지정된 엥커 포인트를 중심으로 해, 지정된 수의 4분원만 좌표를 회전시키는, 평행이동 후의 회전 변환으로 설정합니다. 이 조작은, 이하를 호출하는 것과 동등합니다.

           setToRotation(numquadrants * Math.PI / 2.0, anchorx, anchory);

  정의 수의 4분원만 회전하면(자), 정의 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)

  `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` 객체
  도입된 버젼:
    1.2
  관련 항목:
    `preConcatenate(java.awt.geom.AffineTransform)`

### preConcatenate

    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` 객체
  도입된 버젼:
    1.2
  관련 항목:
    `concatenate(java.awt.geom.AffineTransform)`

### createInverse

    public AffineTransform  createInverse()
                                  throws NoninvertibleTransformException

  역변환을 표현하는 `AffineTransform` 객체를 돌려줍니다. 이 변환 Tx 의 역변환 Tx'는, Tx 에 의해 변환된 좌표를 그 원의 좌표에 맵 해 되돌립니다. 즉, Tx'(Tx(p)) = p = Tx(Tx'(p))입니다.

  이 변환이 모든 좌표를 점이나 선에 맵 하는 경우, 변환은 역사상을 가지지 않습니다. 이것은, 전송처의 점이나 선에 없는 좌표가 역사상을 가지지 않기 때문입니다. `getDeterminant` 메소드를 사용하면(자), 이 변환이 역사상을 가질지 어떨지를 판정할 수 있습니다. 이 변환이 역사상을 가지지 않는 경우,`createInverse` 메소드가 불려 가면(자), 예외가 throw 됩니다.

  반환값:
    역변환을 표현하는 새롭다 `AffineTransform` 객체
  예외:
    `NoninvertibleTransformException` - 행렬을 반전할 수 없는 경우
  도입된 버젼:
    1.2
  관련 항목:
    `getDeterminant()`

### invert

    public void invert()
                throws NoninvertibleTransformException

  이 변환을 자신의 역변환으로 설정합니다. 이 변환 Tx 의 역변환 Tx'는, Tx 에 의해 변환된 좌표를 그 원의 좌표에 맵 해 되돌립니다. 즉, Tx'(Tx(p)) = p = Tx(Tx'(p))입니다.

  이 변환이 모든 좌표를 점이나 선에 맵 하는 경우, 변환은 역사상을 가지지 않습니다. 이것은, 전송처의 점이나 선에 없는 좌표가 역사상을 가지지 않기 때문입니다. `getDeterminant` 메소드를 사용하면(자), 이 변환이 역사상을 가질지 어떨지를 판정할 수 있습니다. 이 변환이 역사상을 가지지 않는 경우,`invert` 메소드가 불려 가면(자), 예외가 throw 됩니다.

  예외:
    `NoninvertibleTransformException` - 행렬을 반전할 수 없는 경우
  도입된 버젼:
    1.6
  관련 항목:
    `getDeterminant()`

### transform

    public Point2D  transform(Point2D  ptSrc,
                             Point2D  ptDst)

  지정된 `ptSrc` 를 변환해, 그 결과를 `ptDst` 에 포함합니다. `ptDst` 가 `null` 의 경우, 새로운 `Point2D` 객체를 할당할 수 있고 나서, 변환의 결과가 이 객체에 포함됩니다. 어느 쪽의 경우도, 편의상, 변환 후의 점을 포함하고 있는 `ptDst` 가 돌려주어집니다. `ptSrc` 와 `ptDst` 가 같은 객체의 경우, 입력점은 변환 후의 점으로써 적절히 덧쓰기됩니다.

  파라미터:
    `ptSrc` - 변환 대상의 지정된 `Point2D`
    `ptDst` - `ptSrc` 의 변환 결과를 포함하고 있다 지정된 `Point2D`
  반환값:
    `ptSrc` 를 변환해, 결과를 `ptDst` 에 포함한 뒤의 `ptDst`
  도입된 버젼:
    1.2

### transform

    public void transform(Point2D [] ptSrc,
                          int srcOff,
                          Point2D [] ptDst,
                          int dstOff,
                          int numPts)

  이 변환에 의해 포인트 객체의 배열을 변환합니다. ``ptDst` 배열의 요소중 한쪽이 `null` 이면, 새로운 `Point2D` 객체를 할당할 수 있어 변환의 결과가 포함되기 전에 그 요소에 포함됩니다.

  다만, 이 메소드는, 전송원배열에 놓여져 계산의 전송원으로서 사용되는 `Point2D` 객체에 결과를 포함하는 것에 의해 일으켜지는 문제를 피하기 위한 예방 조치를 취하고 있지 않습니다. 이 메소드는, 지정된 `Point2D` 객체가 같은 1 개의 점의 변환 오퍼레이션의 전송원과 전송처의 양쪽 모두인 경우, 오퍼랜드 위에 결과가 포함되지 않게, 결과를 계산의 종료후까지 포함하지 않는 것을 보증합니다. 그러나, 전송처 `Point2D` 객체가 다른 오퍼레이션의 전송원배열에 놓여져 전송원 `Point2D` 객체가 되는 경우, 그 점의 원의 좌표는 변환 가능하게 되기 전에 덧쓰기됩니다.

  `
  파라미터:
    `ptSrc` - 전송원의 포인트 객체가 포함되고 있는 배열
    `ptDst` - 변환 포인트 객체가 반환된다 배열
    `srcOff` - 전송원배열내의 변환되는 최초의 포인트 객체에의 오프셋(offset)
    `dstOff` - 변환된 최초의 포인트 객체가 포함된다 전송처 배열내의 위치에의 오프셋(offset)
    `numPts` - 변환되는 포인트 객체의 수
  도입된 버젼:
    1.2

### transform

    public void transform(float[] srcPts,
                          int srcOff,
                          float[] dstPts,
                          int dstOff,
                          int numPts)

  이 변환에 의해, 부동 소수점의 좌표의 배열을 변환합니다. 2 개의 좌표 배열 섹션은 완전하게 같은가, 결과의 유효성에 영향을 주지 않고 같은 배열의 섹션을 오버랩 한 것입니다. 이 메소드는, 전송원의 좌표가 변환 가능하게 되기 전에, 지금까지의 오퍼레이션에 의해 덧쓰기되지 않는 것을 보증합니다. 좌표는, 지정된 오프셋(offset)로부터 시작되는 배열에 `[x0, y0, x1, y1, ..., xn, yn]` 라고 하는 순서로 포함됩니다.

  파라미터:
    `srcPts` - 전송원의 점좌표가 돌려주어지고 있는 배열. 각 점은 x, y 좌표의 페어로서 포함되는
    `dstPts` - 변환된 점좌표가 반환된다 배열. 각 점은 x, y 좌표의 페어로서 포함되는
    `srcOff` - 전송원배열내의 변환되는 최초의 점에의 오프셋(offset)
    `dstOff` - 변환된 최초의 점이 포함된다 전송처 배열내의 위치에의 오프셋(offset)
    `numPts` - 변환되는 점의 수
  도입된 버젼:
    1.2

### transform

    public void transform(double[] srcPts,
                          int srcOff,
                          double[] dstPts,
                          int dstOff,
                          int numPts)

  이 변환에 의해, 배정밀도의 좌표의 배열을 변환합니다. 2 개의 좌표 배열 섹션은 완전하게 같은가, 결과의 유효성에 영향을 주지 않고 같은 배열의 섹션을 오버랩 한 것입니다. 이 메소드는, 전송원의 좌표가 변환 가능하게 되기 전에, 지금까지의 오퍼레이션에 의해 덧쓰기되지 않는 것을 보증합니다. 좌표는, 지정된 오프셋(offset)로부터 시작되는 배열에 `[x0, y0, x1, y1, ..., xn, yn]` 라고 하는 순서로 포함됩니다.

  파라미터:
    `srcPts` - 전송원의 점좌표가 돌려주어지고 있는 배열. 각 점은 x, y 좌표의 페어로서 포함되는
    `dstPts` - 변환된 점좌표가 반환된다 배열. 각 점은 x, y 좌표의 페어로서 포함된다.
    `srcOff` - 전송원배열내의 변환되는 최초의 점에의 오프셋(offset)
    `dstOff` - 변환된 최초의 점이 포함된다 전송처 배열내의 위치에의 오프셋(offset)
    `numPts` - 변환되는 포인트 객체의 수
  도입된 버젼:
    1.2

### transform

    public void transform(float[] srcPts,
                          int srcOff,
                          double[] dstPts,
                          int dstOff,
                          int numPts)

  이 변환에 의해 부동 소수점의 좌표의 배열을 변환해, 결과를 double 치의 배열에 포함합니다. 좌표는, 지정된 오프셋(offset)로부터 시작되는 배열에 `[x0, y0, x1, y1, ..., xn, yn]` 라고 하는 순서로 포함됩니다.

  파라미터:
    `srcPts` - 전송원의 점좌표가 돌려주어지고 있는 배열. 각 점은 x, y 좌표의 페어로서 포함되는
    `dstPts` - 변환된 점좌표가 반환된다 배열. 각 점은 x, y 좌표의 페어로서 포함되는
    `srcOff` - 전송원배열내의 변환되는 최초의 점에의 오프셋(offset)
    `dstOff` - 변환된 최초의 점이 포함된다 전송처 배열내의 위치에의 오프셋(offset)
    `numPts` - 변환되는 점의 수
  도입된 버젼:
    1.2

### transform

    public void transform(double[] srcPts,
                          int srcOff,
                          float[] dstPts,
                          int dstOff,
                          int numPts)

  이 변환에 의해 배정밀도의 좌표의 배열을 변환해, 결과를 float 치의 배열에 포함합니다. 좌표는, 지정된 오프셋(offset)로부터 시작되는 배열에 `[x0, y0, x1, y1, ..., xn, yn]` 라고 하는 순서로 포함됩니다.

  파라미터:
    `srcPts` - 전송원의 점좌표가 돌려주어지고 있는 배열. 각 점은 x, y 좌표의 페어로서 포함되는
    `dstPts` - 변환된 점좌표가 반환된다 배열. 각 점은 x, y 좌표의 페어로서 포함된다.
    `srcOff` - 전송원배열내의 변환되는 최초의 점에의 오프셋(offset)
    `dstOff` - 변환된 최초의 점이 포함된다 전송처 배열내의 위치에의 오프셋(offset)
    `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 개의 좌표 배열 섹션은 완전하게 같은가, 결과의 유효성에 영향을 주지 않고 같은 배열의 섹션을 오버랩 한 것입니다. 이 메소드는, 전송원의 좌표가 변환 가능하게 되기 전에, 지금까지의 오퍼레이션에 의해 덧쓰기되지 않는 것을 보증합니다. 좌표는, 지정된 오프셋(offset)로부터 시작되는 배열에 `[x0, y0, x1, y1, ..., xn, yn]` 라고 하는 순서로 포함됩니다.

  파라미터:
    `srcPts` - 전송원의 점좌표가 돌려주어지고 있는 배열. 각 점은 x, y 좌표의 페어로서 포함되는
    `dstPts` - 변환된 점좌표가 반환된다 배열. 각 점은 x, y 좌표의 페어로서 포함된다.
    `srcOff` - 전송원배열내의 변환되는 최초의 점에의 오프셋(offset)
    `dstOff` - 변환된 최초의 점이 포함된다 전송처 배열내의 위치에의 오프셋(offset)
    `numPts` - 변환되는 포인트 객체의 수
  예외:
    `NoninvertibleTransformException` - 행렬을 반전할 수 없다 경우
  도입된 버젼:
    1.2

### deltaTransform

    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`
  도입된 버젼:
    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 개의 좌표 배열 섹션은 완전하게 같은가, 결과의 유효성에 영향을 주지 않고 같은 배열의 섹션을 오버랩 한 것입니다. 이 메소드는, 전송원의 좌표가 변환 가능하게 되기 전에, 지금까지의 오퍼레이션에 의해 덧쓰기되지 않는 것을 보증합니다. 좌표는, 지정된 오프셋(offset)로부터 시작되는 배열에 `[x0, y0, x1, y1, ..., xn, yn]` 라고 하는 순서로 포함됩니다.

  파라미터:
    `srcPts` - 전송원의 거리 벡터가 포함되고 있는 배열. 각 벡터는 상대 x, y 좌표의 페어로서 포함되는
    `dstPts` - 변환 끝난 거리 벡터가 반환된다 배열. 각 벡터는 상대 x, y 좌표의 페어로서 포함된다.
    `srcOff` - 전송원배열내의 변환되는 최초의 벡터에의 오프셋(offset)
    `dstOff` - 변환된 최초의 벡터가 포함된다 전송처 배열내의 위치에의 오프셋(offset)
    `numPts` - 변환되는 벡터 좌표 페어의 수
  도입된 버젼:
    1.2

### createTransformedShape

    public Shape  createTransformedShape(Shape  pSrc)

  지정된 `Shape` 를 이 변환에 의해 변환해, 그 `Shape` 의 기하학적 도형에 의해 정의되는 새로운 `Shape` 객체를 돌려줍니다.

  파라미터:
    `pSrc` - 이 변환으로 변환되는 지정되었다 `Shape` 객체
  반환값:
    변환된 `Shape` 의 기하학적 도형을 정의한다 새로운 `Shape` 객체,`pSrc` 가 null 의 경우는 null
  도입된 버젼:
    1.2

### toString

    public String  toString()

  이 `Object` 의 값을 나타내는 `String` 를 돌려줍니다.

  오버라이드(override):
    클래스 `Object` 내의 `toString`
  반환값:
    이 `Object` 의 값을 나타낸다 `String`
  도입된 버젼:
    1.2

### isIdentity

    public boolean isIdentity()

  이 `AffineTransform` 이 항등변환인 경우에 `true` 를 돌려줍니다.

  반환값:
    이 `AffineTransform` 가 항등변환인 경우는 `true`, 그렇지 않은 경우는 `false`
  도입된 버젼:
    1.2

### clone

    public Object  clone()

  이 `AffineTransform` 객체의 카피를 돌려줍니다.

  오버라이드(override):
    클래스 `Object` 내의 `clone`
  반환값:
    이 `AffineTransform` 객체의 카피이다 `Object`
  도입된 버젼:
    1.2
  관련 항목:
    `Cloneable`

### hashCode

    public int hashCode()

  이 변환의 해시 코드를 돌려줍니다.

  오버라이드(override):
    클래스 `Object` 내의 `hashCode`
  반환값:
    이 변환의 해시 코드
  도입된 버젼:
    1.2
  관련 항목:
    `Object.equals(java.lang.Object)` , `Hashtable`

### equals

    public boolean equals(Object  obj)

  이 `AffineTransform` 이, 지정된 인수와 같은 아핀 좌표변화를 표현하는 경우에 `true` 를 돌려줍니다.

  오버라이드(override):
    클래스 `Object` 내의 `equals`
  파라미터:
    `obj` - 이 `AffineTransform` 와 같은가 어떤가가 비교된다 `Object`
  반환값:
    `obj` 가 이 `AffineTransform` 객체와 동일한 경우는 `true`, 그렇지 않은 경우는 `false`
  도입된 버젼:
    1.2
  관련 항목:
    `Object.hashCode()` , `Hashtable`

개요 | 패키지 | 클래스 | 사용 | 계층 트리 | 비추천 API | 색인 | 헬프

JavaTM Platform
Standard Ed. 6

전의 클래스 다음의 클래스 | 프레임 있어 프레임 없음
개요: 상자 | 필드 | 생성자 | 메소드 | 상세 : 필드 | 생성자 | 메소드

버그의 보고와 기능의 요청
한층 더 자세한 API 레퍼런스 및 개발자 문서에 대해서는,Java SE 개발자용 문서를 참조해 주세요. 개발자전용의 상세한 해설, 개념의 개요, 용어의 정의, 버그의 회피책, 및 코드 실례가 포함되어 있습니다.

Copyright 2006 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms . Documentation Redistribution Policy 도 참조해 주세요.