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

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

JavaTM Platform
Standard Ed. 6

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

## java.awt
클래스 Graphics2D

    java.lang.Object
      java.awt.Graphics
          java.awt.Graphics2D

    public abstract class Graphics2D

extends Graphics

`Graphics2D` 클래스는, `Graphics` 클래스를 확장해, 기하학적 도형, 좌표변화, 칼라 관리, 및 텍스트 배치에 대해 고도의 제어를 실시합니다. 이 클래스는, Java(TM) 플랫폼에서 2D 의 도형, 텍스트, 및 이미지를 draw하기 위한 기본 클래스입니다.

## 좌표 공간

`Graphics2D` 객체에게 건네지는 모든 좌표는, 사용자 공간 (어플리케이션에 의해 사용된다)으로 불리는, 디바이스에 의존하지 않는 좌표계로 지정됩니다. `Graphics2D` 객체에는, 디바이스 공간에서 사용자 공간의 좌표를 디바이스에 의존하는 좌표로 변환하는 방법을 정의하는 `AffineTransform` 객체가, draw 상태의 일부로서 포함됩니다.

디바이스 공간의 좌표는, 일반적으로, 개별의 디바이스 픽셀을 나타내, 이러한 픽셀간에 무한하게 가는 간격에 늘어놓을 수 있고 있습니다. 일부의 `Graphics2D` 객체에서는, draw 조작을 수중에 넣을 수가 있습니다. 그래픽스 메타파일로서 수중에 넣는 것으로, 후에 물리적인 해상도가 불명한 구상 디바이스를 사용해 재생할 수가 있습니다. draw 조작을 수중에 넣으려면 해상도가 불명해서,`Graphics2D` `Transform` 를 설정해 사용자 좌표를 가상 디바이스 공간으로 변환하도록(듯이) 합니다. 타겟 디바이스가 예상되는 해상도가 개산 됩니다만, 그 견적이 올바르지 않은 경우에는, 재생시에 한층 더 변환을 적용할 필요가 있습니다.

draw 속성 객체에 의해 실행되는 일부의 조작에는 디바이스 공간에서 처리되는 것도 있습니다만,`Graphics2D` 의 메소드는 모두 사용자 공간 좌표를 취급합니다.

모든 `Graphics2D` 객체는, draw가 행해지는 위치를 정의하는 타겟과 관련지을 수 있고 있습니다. `GraphicsConfiguration` 객체는, 픽셀 형식 및 해상도라고 하는 draw 타겟의 특성을 정의합니다. `Graphics2D` 객체에서는, 항상 같은 draw 타겟이 사용됩니다.

`Graphics2D` 객체가 작성될 때,`GraphicsConfiguration` 는,`Graphics2D` (`Component` 또는 `Image` )의 타겟으로서디폴트 변환을 지정합니다. 이 디폴트 변환에서는, 사용자 공간 좌표계를 화면과 프린터의 디바이스 좌표에 매핑 해, 원점을 디바이스의 타겟 영역의 좌상구석에, 우측으로 확장하려면 X 좌표를, 하부에 확장하려면 Y 좌표를 늘리는 것 같은 매핑을 실시합니다. 스크린 디바이스등의 72 dpi 에 가까운 디바이스의 경우, 디폴트 변환의 슬캘링은 그러한 디바이스의 식별 정보로 설정됩니다. 프린터등의 고해상도 디바이스의 경우, 디폴트 변환의 슬캘링은, 1 평방 인치 근처 약 72 사용자 공간 좌표로 설정됩니다. 이미지 버퍼에서는, 디폴트의 변환은 `Identity` 변환입니다.

## draw 프로세스

draw 프로세스는,`Graphics2D` draw 속성에 의해 제어되는 4 개의 단계로 나눌 수가 있습니다. 렌더링에서는 이러한 스텝의 대부분을 최적화할 수 있습니다. 최적화는, 장래의 호출에 대비해 결과를 캐쉬에 포함해 두거나 복수의 가상 스텝을 실질적으로 1 개의 조작에 정리하거나 다양한 속성에 관한 단순한 공통의 문제점을, 조작외의 부분을 변경하는 것으로써 배제하거나 하는 것, 등에 의해 행해집니다.

draw 프로세스의 순서를 다음에 설명합니다.

1. draw 하는 대상을 지정한다
2. draw 조작을 현재의 Clip 에 제한한다. `Clip` 는 사용자 공간 `Shape` 에 의해 지정되어`Graphics` 및 `Graphics2D` 의 다양한 클립 조작 메소드를 사용해 프로그램에 의해 제어됩니다. 이 「사용자 클립」은, 현재의 `Transform` 에 의해 디바이스 공간에 변환되어 윈도우의 가시성 및 디바이스의 크기에 의해 정의되는 「디바이스 클립」이라고 결합됩니다. 사용자 클립과 디바이스 클립의 결합에 의해, 최종적인 클리핑 영역을 결정하는 「복합 클립」을 정의합니다. 렌더링 시스템은, 사용자 클립을 변경해 복합 클립의 결과를 반영할 수 없습니다.
3. draw 하는 색을 지정한다
4. `Graphics2D` 문맥의 현재 `Composite` 속성을 사용해, 목적지의 draw 표면으로 지정된 색을 바른다

3 종류의 draw 조작에 대해, 각각의 draw 프로세스의 상세를 다음에 나타냅니다.

1. `Shape` 의 조작
   1. `draw(Shape)` 조작의 경우,`Graphics2D` 문맥의 현재 `Stroke` 속성으로 `createStrokedShape` 메소드를 사용해, 지정의 `Shape` 의 윤곽을 포함하는 새로운 `Shape` 객체가 구축됩니다.
   2. `Shape` 는,`Graphics2D` 문맥의 현재의 `Transform` 를 사용해 사용자 공간으로부터 디바이스 공간에 변환됩니다.
   3. `Shape` 의 윤곽은,`Shape` 의 `getPathIterator` 메소드를 사용해 추출됩니다. 이 메소드는,`Shape` 의 경계를 따라 반복 처리를 실시하는 `PathIterator` 객체를 돌려줍니다.
   4. `PathIterator` 객체에 의해 반환되는 곡선 세그먼트(segment)를 `Graphics2D` 객체를 처리할 수 없는 경우는,`Shape` 의 평탄화를 실시하는 대체 메소드 `getPathIterator` 를 호출할 수가 있습니다.
   5. `Graphics2D` 문맥의 현재 `Paint` 가, 디바이스 공간에서 draw 하는 색을 지정하는 `PaintContext` 를 취득하기 위해서 조회됩니다.
2. 텍스트 조작
   1. 지정된 `String` 를 draw 하기 위해서 필요한 Glyph세트는, 이하의 순서로 지정됩니다.
      1. 인수가 `String` 의 경우, 폰트가 구현하는 기본 레이아웃 및 형상 결정 알고리즘에 관계없이 그것들을 이용해 표시하기 위해서,`Graphics2D` 문맥의 현재의 `Font` 는 `String` 의 Unicode 캐릭터 라인을 Glyph세트로 변환하도록(듯이) 요구됩니다.
      2. 인수가 `AttributedCharacterIterator` 의 경우, 반복자는, 매입 폰트 속성을 사용해, 그 자체를 `TextLayout` 로 변환하도록(듯이) 요구됩니다. `TextLayout` 는, 기입 방향이 다른 복수의 폰트를 위해서(때문에) 자동적으로 Unicode 의 쌍방향 레이아웃 조정을 실행하는, 보다 고성능인 Glyph레이아우트아르고리즘을 구현할 수 있습니다.
      3. 인수가 `GlyphVector` 의 경우,`GlyphVector` 객체는, 각 Glyph의 위치를 나타내는 명시적인 좌표를 가지는 폰트 독자적인 적절한 Glyph코드를 벌써 포함하고 있습니다.
   2. 현재의 `Font` 를 조회하면(자), 지정된 Glyph의 아우트라인을 취득할 수 있습니다. 이러한 아우트라인은, 순서 1 으로 지정된 각 Glyph의 위치를 기준으로 한 사용자 공간의 형상으로서 처리됩니다.
   3. 문자의 아우트라인이,「`Shape` 의 조작」으로 설명한 것처럼 전부 칠해집니다.
   4. 현재의 `Paint` 가, 디바이스 공간에서 draw 하는 색을 지정하는 `PaintContext` 를 취득하기 위해서 조회됩니다.
3. `Image` 의 조작
   1. 대상이 되는 영역은, 소스 `Image` 의 바운딩 박스로 정의됩니다. 이 바운딩 박스는,`Image` 객체의 로컬인 좌표계인 이미지 공간에서 지정됩니다.
   2. `AffineTransform` 이 `drawImage(Image, AffineTransform, ImageObserver)` 에게 건네지는 경우는, 이미지 공간으로부터 사용자 공간에 바운딩 박스를 변환하기 위해서, 그 `AffineTransform` 가 사용됩니다. `AffineTransform` 가 지정되지 않는 경우, 바운딩 박스는 벌써 사용자 공간에 있는 것으로서 다루어집니다.
   3. 소스 `Image` 의 바운딩 박스는, 현재의 `Transform` 를 사용해 사용자 공간으로부터 디바이스 공간에 변환됩니다. 다만, 바운딩 박스를 변환한 결과가, 디바이스 공간에서 구형 영역이 된다고는 할 수 없습니다.
   4. `Image` 객체는 draw 하는 색을 지정합니다. 색은, 현재의 `Transform` 와 옵션의 이미지 변환에 의해 지정된 소스로부터 목적지에의 매핑에 따라 샘플링 됩니다.

## 디폴트의 draw 속성

`Graphics2D` draw 속성의 디폴트 값를 다음에 나타냅니다.

`Paint`
  `Component` 의 색
`Font`
  `Component` 의 `Font`
`Stroke`
  선폭 1, 파선 이루어, 마이타세그먼트 결합, 및 모퉁이 엔드 캡을 가지는 모퉁이 펜
`Transform`
  `Component` 의 `GraphicsConfiguration` 용의 `getDefaultTransform`
`Composite`
  `AlphaComposite.SRC_OVER` 규칙
`Clip`
  draw `Clip` 이루어, 출력은 `Component` 에 클립 된다

## draw 호환성

JDKTM 1.1 draw 모델은, 좌표가 픽셀간의 무한하게 가는 간격에 존재한다고 하는 픽셀화 모델에 근거합니다. draw 조작은, 윤곽 선상의 엥커 포인트의 오른쪽 및 아래의 픽셀을 전부 칠하는 1 픽셀폭의 펜을 사용해 행해집니다. JDK 1.1 draw 모델은, 지정된 번호의 픽셀에 제대로 들어가지 않으면 안 되는 이산 펜에 정수 좌표를 변환할 필요가 있는, 플랫폼 렌더링의 대부분의 기존 클래스의 기능에 준거하고 있습니다.

Java 2D(TM) (Java(TM) 2 플랫폼) API 는, 평활화 렌더링을 지원하고 있습니다. 1 픽셀폭의 펜은, 픽셀 N+1 와 대비한 픽셀 N 에 완전하게 들어갈 필요는 없습니다. 펜은, 부분적으로 양쪽 모두의 픽셀에 걸릴 수가 있습니다. 이동하고 있는 펜의 인연이 양쪽 모두의 픽셀에 걸리면(자), 펜의 서브 픽셀 위치가 사용자에게 표시되기 (위해)때문에, 대폭 펜의 바이어스 방향을 선택할 필요는 없습니다. 한편,`KEY_ANTIALIASING` 힌트 키를 `VALUE_ANTIALIAS_OFF` 힌트치로 설정하는 것에 의해 평활화를 무효로 했을 경우는, 디바이스 공간에서 정수 좌표에 따라 draw 하고 있을 때 등, 펜이 픽셀 경계를 넘으려 하고 있을 때 어느 쪽의 픽셀을 수정할까 판단하기 위해서(때문에), 렌더링은 바이어스를 적용할 필요가 있습니다. 평활화 렌더링의 기능에 의해, draw 모델은 펜의 바이어스를 지정하는 필요성이 없어졌습니다만, 화면상에서 1 픽셀폭의 수평선 및 수직선을 draw 하는 공통의 케이스에서는, 평활화 렌더링과 비평활화 렌더링은 똑같이 동작할 필요가 있습니다. `KEY_ANTIALIASING` 힌트 키를 `VALUE_ANTIALIAS_ON` 로 설정해 평활화를 유효하게 했기 때문에, 이 선폭이 돌연 2 배가 되어 불투명도가 반이 되는 것을 막으려면 , 그러한 선의 윤곽선을 모델로 지정하는 것에 의해, 그 선이 특정의 픽셀세트를 완전하게 커버해 윤곽이 선명히 되도록(듯이) 합니다.

Java 2D API 는 JDK 1.1 의 draw 동작과의 호환성을 유지하고 있어, Java 2D API 에서는 종래부터의 조작이나 기존의 렌더링의 동작으로 변경은 없습니다. 일반적인 `draw` 메소드 및 `fill` 메소드에 매핑 되는 종래의 메소드가 정의되고 있기 (위해)때문에,`Stroke` 속성과 `Transform` 속성의 설정 및 draw 힌트에 근거해 `Graphics2D` 가 `Graphics` 를 어떻게 확장하고 있을지가 명확하게 나타나고 있습니다. 그 정의는, 디폴트의 속성 설정에서는 똑같이 실행됩니다. 예를 들어, 디폴트의 `Stroke` 는, 폭 1 및 파선 없음의 `BasicStroke` 이며, 화면 draw의 디폴트의 Transform 는 항등변환입니다.

다음의 2 개의 규칙은, 에일리어징 제거 또는 비에일리어징 제거의 어느 쪽이 사용되고 있어도, 예측 가능한 draw 동작을 제공합니다.

- 디바이스 픽셀간에 디바이스 좌표가 정의되어 그것에 의해 에일리어징 제거와 에일리어징 제거의 draw의 사이에 일관성이 있는 결과를 얻을 수 있습니다. 좌표가 픽셀의 중심에 있도록(듯이) 정의되었을 경우, 구형등의 형상에 의해 커버되는 일부의 픽셀은 반밖에 커버되지 않습니다. 비에일리어징 제거의 draw의 경우, 반커버된 픽셀은 형상의 안쪽이나 외측의 어느 쪽인지가 draw 됩니다. 에일리어징 제거의 draw에서는, 형상의 엣지 전체에 있는 픽셀이 반만큼 커버됩니다. 그러나, 픽셀의 사이에 좌표가 정의되고 있으면, 구형등의 형상은, 에일리어징 제거를 사용해 draw 되는 제발에 관계없이, 반만큼 커버된 픽셀을 가질 것은 없습니다.
- `BasicStroke` 객체를 사용해 stroke 한 선 및 도형의 윤곽을 「정규화」하는 것으로, draw 가능한 다양한 위치에서 비에일리어징 제거 draw 또는 에일리어징 제거 draw 할 경우에, 일관성이 있는 윤곽을 draw 할 수가 있습니다. 이 정규화 프로세스는,`KEY_STROKE_CONTROL` 힌트에 의해 제어됩니다. 정확한 정규화 알고리즘은 지정됩니다만, 이 정규화의 목표는, 픽셀 구라두에 선이 어떻게 들어가는 것에 관계없이, 시각적으로 일관성이 있는 선을 draw 할 수 있도록(듯이) 하는 것, 및 에일리어징 제거 모드에서의 수평선 및 수직선을 보다 치밀하게 해, 에일리어징 제거되어 있지 않은 경우의 선이 될 수 있도록 접근하는 것입니다. 일반적으로의 정규화의 스텝에서는, 부동 소수점의 선폭이 동등의 가능성으로 짝수 또는 홀수의 픽셀수에 사사오입 할 수 있도록(듯이), 에일리어징 제거 된 선의 끝을 보다 픽셀의 중심에 해 겹치는 양을 줄이든가, 혹은 에일리어징 제거되어 있지 않은 선의 서브 픽셀의 위치 결정을 조정합니다. 이 프로세스에서는, 끝을 픽셀의 반까지 이동해 (일반적으로은 양축으로 따라 정의 무한대 방향), 이러한 결과의 일관성을 높일 수가 있습니다.

다음에 나타내는 일반적인 종래의 메소드의 정의는, 디폴트 속성 설정에서는 이전으로 지정된 동작과 같이 실행됩니다.

- `fillRect`,`fillRoundRect`,`fillOval`,`fillArc`,`fillPolygon`,`clearRect` 등의 `fill` 조작의 경우는, 목적의 `Shape` 를 지정해 `fill` 를 호출할 수가 있습니다. 예를 들어 구형을 전부 칠하는 경우는,

       fill(new Rectangle(x, y, w, h));

  (을)를 호출합니다.

- 똑같이,`drawLine`,`drawRect`,`drawRoundRect`,`drawOval`,`drawArc`,`drawPolyline`,`drawPolygon` 등의 draw 조작의 경우는, 목적의 `Shape` 를 지정해 `draw` 를 호출할 수가 있습니다. 예를 들어 구형을 draw 하는 경우는,

       draw(new Rectangle(x, y, w, h));

  (을)를 호출합니다.

- `draw3DRect` 메소드와 `fill3DRect` 메소드는,`Graphics` 클래스에서는 `drawLine` 메소드와 `fillRect` 메소드를 사용해 구현되고 있습니다. 이러한 동작은,`Graphics2D` 문맥의 현재의 `Stroke` 객체와 `Paint` 객체에 근거해 예측할 수 있습니다. `Graphics2D` 클래스는, 현재의 `Paint` 를 오버라이드(override) 해, 이러한 2 개의 객체의 구현을 현재의 `Color` 를 배타적으로 사용하는 버젼으로 오버라이드(override) 합니다. 이 클래스는, 기존의 메소드와 완전하게 동일한 동작을 기술하기 위해서,`Stroke` 의 현재의 설정 (와)는 관계없는 것으로 `fillRect` 를 사용합니다.

`Graphics` 클래스는, 페인트 되는 색을 제어하기 위해서 `setColor` 메소드만을 정의합니다. Java 2D API 는,`Color` 객체를 확장해 새로운 `Paint` 인터페이스를 구현하므로, 기존의 `setColor` 메소드는 현재의 `Paint` 속성을 `Color` 객체로 설정하기 위한 편리한 메소드가 되어 있습니다. `setColor(c)` 는 `setPaint(c)` 에 상당합니다.

`Graphics` 클래스는, 색을 목적지에 적용하는 방법을 제어하기 위해서 2 개의 메소드를 정의합니다.

1. `setPaintMode` 메소드는,`setComposite(new AlphaComposite.SrcOver)` 에 상당하는 디폴트의 `Composite` 를 설정하는 편리한 메소드로서 구현됩니다.
2. `setXORMode(Color xorcolor)` 메소드는, 소스 칼라의 `Alpha` 컴퍼넌트를 무시해, 목적지 칼라를 그 값으로 설정하는 특수한 `Composite` 객체를 설정하기 위한 편리한 메소드로서 구현됩니다.

        dstpixel = (PixelOf(srccolor) ^ PixelOf(xorcolor) ^ dstpixel);

관련 항목:
  `RenderingHints`

생성자 의 개요
`protected` | `Graphics2D ()` 새로운 `Graphics2D` 객체를 구축합니다.

메소드의 개요
`abstract void` | `addRenderingHints (Map <?,?> hints)` draw 알고리즘에 관한 임의의 수의 추천 설정의 값을 설정합니다.
`abstract void` | `clip (Shape s)` 현재의 `Clip` 가 지정된 `Shape` 의 내부와 교차시켜, 결과적으로 생긴 공통 부분에 그 `Clip` 를 설정합니다.
`abstract void` | `draw (Shape s)` 현재의 `Graphics2D` 문맥의 설정을 사용하는 것으로,`Shape` 의 윤곽을 stroke로 draw 합니다.
`void` | `draw3DRect (int x, int y, int width, int height, boolean raised)` 지정된 구형의 윤곽을 3D 로 강조 표시해 draw 합니다.
`abstract void` | `drawGlyphVector (GlyphVector g, float x, float y)` `Graphics2D` 문맥의 draw 속성을 사용하는 것으로, 지정된 `GlyphVector` 의 텍스트를 draw 합니다.
`abstract void` | `drawImage (BufferedImage img, BufferedImageOp op, int x, int y)` `BufferedImageOp` 로 필터 처리되는 `BufferedImage` 를 draw 합니다.
`abstract boolean` | `drawImage (Image img, AffineTransform xform, ImageObserver obs)` 이미지 공간으로부터 사용자 공간에의 변환을 적용하고 나서, 이미지를 draw 합니다.
`abstract void` | `drawRenderableImage (RenderableImage img, AffineTransform xform)` 이미지 공간으로부터 사용자 공간에의 변환을 적용하고 나서,`RenderableImage` 를 draw 합니다.
`abstract void` | `drawRenderedImage (RenderedImage img, AffineTransform xform)` 이미지 공간으로부터 사용자 공간에의 변환을 적용하고 나서,`RenderedImage` 를 draw 합니다.
`abstract void` | `drawString (AttributedCharacterIterator iterator, float x, float y)` 지정된 반복자에 의해 텍스트를 그려,`TextAttribute` 클래스의 스펙에 근거해 속성을 적용합니다.
`abstract void` | `drawString (AttributedCharacterIterator iterator, int x, int y)` 지정된 반복자에 의해 텍스트를 그려,`TextAttribute` 클래스의 스펙에 근거해 속성을 적용합니다.
`abstract void` | `drawString (String str, float x, float y)` `Graphics2D` 문맥의 현재의 텍스트 속성 상태를 사용하는 것으로, 특정의 `String` 에 의해 지정된 텍스트를 draw 합니다.
`abstract void` | `drawString (String str, int x, int y)` `Graphics2D` 문맥의 현재의 텍스트 속성 상태를 사용하는 것으로, 지정된 `String` 의 텍스트를 draw 합니다.
`abstract void` | `fill (Shape s)` `Graphics2D` 문맥의 설정을 사용하는 것으로,`Shape` 의 내부를 전부 칠합니다.
`void` | `fill3DRect (int x, int y, int width, int height, boolean raised)` 현재의 색으로 전부 칠해지고 있는, 3D 로 강조 표시된 구형을 그립니다.
`abstract Color` | `getBackground ()` 영역을 클리어 하는데 사용하는 백그라운드 칼라를 돌려줍니다.
`abstract Composite` | `getComposite ()` `Graphics2D` 문맥에서의 현재의 `Composite` 를 돌려줍니다.
`abstract GraphicsConfiguration` | `getDeviceConfiguration ()` 이 `Graphics2D` 에 관련한 디바이스 구성을 돌려줍니다.
`abstract FontRenderContext` | `getFontRenderContext ()` 이 `Graphics2D` 문맥에서의 `Font` 의 draw 문맥을 돌려줍니다.
`abstract Paint` | `getPaint ()` `Graphics2D` 문맥에서의 현재의 `Paint` 를 돌려줍니다.
`abstract Object` | `getRenderingHint (RenderingHints.Key hintKey)` draw 알고리즘의 추천 설정의 값을 1 개 돌려줍니다.
`abstract RenderingHints` | `getRenderingHints ()` draw 알고리즘의 추천 설정을 돌려줍니다.
`abstract Stroke` | `getStroke ()` `Graphics2D` 문맥에서의 현재의 `Stroke` 를 돌려줍니다.
`abstract AffineTransform` | `getTransform ()` `Graphics2D` 문맥에서의 현재의 `Transform` 의 카피를 돌려줍니다.
`abstract boolean` | `hit (Rectangle rect, Shape s, boolean onStroke)` 지정된 `Shape` 가 지정된 `Rectangle` (디바이스 공간에 있다)와 교차할지 어떨지를 판정합니다.
`abstract void` | `rotate (double theta)` 현재의 `Graphics2D` `Transform` 를 회전 변환과 연결합니다.
`abstract void` | `rotate (double theta, double x, double y)` 현재의 `Graphics2D` `Transform` 를 이동 후의 회전 변환과 연결합니다.
`abstract void` | `scale (double sx, double sy)` 현재의 `Graphics2D` `Transform` 를 슬캘링 변환과 연결합니다.
`abstract void` | `setBackground (Color color)` `Graphics2D` 문맥의 백그라운드 칼라를 설정합니다.
`abstract void` | `setComposite (Composite comp)` `Graphics2D` 문맥의 `Composite` 를 설정합니다.
`abstract void` | `setPaint (Paint paint)` `Graphics2D` 문맥에 `Paint` 속성을 설정합니다.
`abstract void` | `setRenderingHint (RenderingHints.Key hintKey, Object hintValue)` draw 알고리즘의 추천 설정의 값을 1 개 설정합니다.
`abstract void` | `setRenderingHints (Map <?,?> hints)` draw 알고리즘의 모든 추천 설정의 값을, 지정된 `hints` 에 옮겨놓습니다.
`abstract void` | `setStroke (Stroke s)` `Graphics2D` 문맥의 `Stroke` 를 설정합니다.
`abstract void` | `setTransform (AffineTransform Tx)` `Graphics2D` 문맥으로 Transform 를 덧쓰기합니다.
`abstract void` | `shear (double shx, double shy)` 현재의 `Graphics2D` `Transform` 를 셔링 변환과 연결합니다.
`abstract void` | `transform (AffineTransform Tx)` `AffineTransform` 객체를 이 `Graphics2D` 에서의 `Transform` 를 사용해, 후 지정 우선 적용이라고 하는 규칙에 따라 변환합니다.
`abstract void` | `translate (double tx, double ty)` 현재의 `Graphics2D` `Transform` 를 이동 변환과 연결합니다.
`abstract void` | `translate (int x, int y)` `Graphics2D` 문맥의 원점을, 현재의 좌표계의 점 (x, y)으로 이동합니다.

클래스 java.awt. Graphics 로부터 상속된 메소드
`clearRect , clipRect , copyArea , create , create , dispose , drawArc , drawBytes , drawChars , drawImage , drawImage , drawImage , drawImage , drawImage , drawImage , drawLine , drawOval , drawPolygon , drawPolygon , drawPolyline , drawRect , drawRoundRect , fillArc , fillOval , fillPolygon , fillPolygon , fillRect , fillRoundRect , finalize , getClip , getClipBounds , getClipBounds , getClipRect , getColor , getFont , getFontMetrics , getFontMetrics , hitClip , setClip , setClip , setColor , setFont , setPaintMode , setXORMode , toString`

클래스 java.lang. Object 로부터 상속된 메소드
`clone , equals , getClass , hashCode , notify , notifyAll , wait , wait , wait`

생성자 의 상세

### Graphics2D

    protected Graphics2D()

  새로운 `Graphics2D` 객체를 구축합니다. `Graphics2D` 는 abstract 클래스이며, 다양한 출력 디바이스를 위해서(때문에) 서브 클래스에서 커스터마이즈 되지 않으면 안 되기 때문에,`Graphics2D` 객체를 직접 작성할 수 없습니다. 대신에, 다른 `Graphics2D` 객체로부터 취득하는지,`Component` 에 의해 작성하든가, 혹은 `BufferedImage` 객체등의 이미지로부터 취득하지 않으면 안됩니다.

  관련 항목:
    `Component.getGraphics()` , `Graphics.create()`

메소드의 상세

### draw3DRect

    public void draw3DRect(int x,
                           int y,
                           int width,
                           int height,
                           boolean raised)

  지정된 구형의 윤곽을 3D 로 강조 표시해 draw 합니다. 구형의 구석은, 경사해, 좌상구석으로부터 빛을 쬔 것처럼 강조 표시됩니다.

  강조 표시 효과에 사용되는 색은, 현재의 색에 근거해 지정됩니다. draw 된 구형은, 폭 `width + 1` 픽셀, 높이 `height + 1` 픽셀의 영역을 커버합니다. 이 메소드는 현재의 `Color` 만을 사용해, 현재의 `Paint` 는 무시합니다.

  오버라이드(override):
    클래스 `Graphics` 내의 `draw3DRect`
  파라미터:
    `x` - draw 되는 구형의 x 좌표
    `y` - draw 되는 구형의 y 좌표
    `width` - draw 되는 구형의 폭
    `height` - draw 되는 구형의 높이
    `raised` - 구형이 표면으로부터 떠오른 것처럼 보이는지, 표면에 조각해 붐비어진 것처럼 보이는지를 지정한다 boolean 치
  관련 항목:
    `Graphics.fill3DRect(int, int, int, int, boolean)`

### fill3DRect

    public void fill3DRect(int x,
                           int y,
                           int width,
                           int height,
                           boolean raised)

  현재의 색으로 전부 칠해지고 있는, 3D 로 강조 표시된 구형을 그립니다. 구형의 구석은, 경사해, 좌상구석으로부터 빛을 쬔 것처럼 강조 표시됩니다. 강조 표시 효과 및 전부 칠해에 사용되는 색은, 현재의 `Color` 에 의해 지정됩니다. 이 메소드는 현재의 `Color` 만을 사용해, 현재의 `Paint` 는 무시합니다.

  오버라이드(override):
    클래스 `Graphics` 내의 `fill3DRect`
  파라미터:
    `x` - 전부 칠해지는 구형의 x 좌표
    `y` - 전부 칠해지는 구형의 y 좌표
    `width` - 전부 칠해지는 구형의 폭
    `height` - 전부 칠해지는 구형의 높이
    `raised` - 구형이 표면으로부터 떠오른 것처럼 보이는지, 표면에 조각해 붐비어진 것처럼 보이는지를 지정한다 boolean 치
  관련 항목:
    `Graphics.draw3DRect(int, int, int, int, boolean)`

### draw

    public abstract void draw(Shape  s)

  현재의 `Graphics2D` 문맥의 설정을 사용하는 것으로,`Shape` 의 윤곽을 stroke로 draw 합니다. 적용되는 draw 속성에는,`Clip`,`Transform`,`Paint`,`Composite`, 및 `Stroke` 의 각 속성이 있습니다.

  파라미터:
    `s` - draw 되는 `Shape`
  관련 항목:
    `setStroke(java.awt.Stroke)` , `setPaint(java.awt.Paint)` , `Graphics.setColor(java.awt.Color)` , `transform(java.awt.geom.AffineTransform)` , `setTransform(java.awt.geom.AffineTransform)` , `clip(java.awt.Shape)` , `Graphics.setClip(int, int, int, int)` , `setComposite(java.awt.Composite)`

### drawImage

    public abstract boolean drawImage(Image  img,
                                      AffineTransform  xform,
                                      ImageObserver  obs)

  이미지 공간으로부터 사용자 공간에의 변환을 적용하고 나서, 이미지를 draw 합니다. 사용자 공간으로부터 디바이스 공간에의 변환은,`Graphics2D` 에서의 현재의 `Transform` 에 의해 행해집니다. 지정된 변환은,`Graphics2D` 문맥의 변환 속성에 적용되기 전에 이미지에 적용됩니다. 적용되는 draw 속성에는,`Clip`,`Transform`, 및 `Composite` 의 각 속성이 있습니다. 다만, 지정된 변환이 역변환을 가지지 않는 경우, draw는 행해지지 않습니다.

  파라미터:
    `img` - draw 되는 지정 이미지. `img` 가 null 의 경우에는 아무것도 실시하지 않는
    `xform` - 이미지 공간으로부터 사용자 공간에의 변환
    `obs` - `Image` 의 것보다 많은 부분이 변환된다고 통지된다 `ImageObserver`
  반환값:
    `Image` 가 모두 로드 되어 완전하게 draw 되었을 경우는 `true`, `Image` 가 아직 로드안의 경우는 `false`
  관련 항목:
    `transform(java.awt.geom.AffineTransform)` , `setTransform(java.awt.geom.AffineTransform)` , `setComposite(java.awt.Composite)` , `clip(java.awt.Shape)` , `Graphics.setClip(int, int, int, int)`

### drawImage

    public abstract void drawImage(BufferedImage  img,
                                   BufferedImageOp  op,
                                   int x,
                                   int y)

  `BufferedImageOp` 로 필터 처리되는 `BufferedImage` 를 draw 합니다. 적용되는 draw 속성에는,`Clip`,`Transform`, 및 `Composite` 의 각 속성이 있습니다. 이것은, 다음의 조작에 상당합니다.

       img1 = op.filter(img, null);
       drawImage(img1, new AffineTransform(1f, 0f, 0f, 1f, x, y), null);

  파라미터:
    `op` - draw전에 이미지에 적용되는 필터
    `img` - draw 되는 지정 `BufferedImage`. `img` 가 null 의 경우에는 아무것도 실시하지 않는
    `x` - 이미지의 좌상구석이 draw 되는 사용자 공간의 위치의 x 좌표
    `y` - 이미지의 좌상구석이 draw 되는 사용자 공간의 위치의 y 좌표
  관련 항목:
    `transform(java.awt.geom.AffineTransform)` , `setTransform(java.awt.geom.AffineTransform)` , `setComposite(java.awt.Composite)` , `clip(java.awt.Shape)` , `Graphics.setClip(int, int, int, int)`

### drawRenderedImage

    public abstract void drawRenderedImage(RenderedImage  img,
                                           AffineTransform  xform)

  이미지 공간으로부터 사용자 공간에의 변환을 적용하고 나서,`RenderedImage` 를 draw 합니다. 사용자 공간으로부터 디바이스 공간에의 변환은,`Graphics2D` 에서의 현재의 `Transform` 에 의해 행해집니다. 지정된 변환은,`Graphics2D` 문맥의 변환 속성에 적용되기 전에 이미지에 적용됩니다. 적용되는 draw 속성에는,`Clip`,`Transform`, 및 `Composite` 의 각 속성이 있습니다. 다만, 지정된 변환이 역변환을 가지지 않는 경우, draw는 행해지지 않습니다.

  파라미터:
    `img` - draw 되는 이미지. `img` 가 null 의 경우에는 아무것도 실시하지 않는
    `xform` - 이미지 공간으로부터 사용자 공간에의 변환
  관련 항목:
    `transform(java.awt.geom.AffineTransform)` , `setTransform(java.awt.geom.AffineTransform)` , `setComposite(java.awt.Composite)` , `clip(java.awt.Shape)` , `Graphics.setClip(int, int, int, int)`

### drawRenderableImage

    public abstract void drawRenderableImage(RenderableImage  img,
                                             AffineTransform  xform)

  이미지 공간으로부터 사용자 공간에의 변환을 적용하고 나서,`RenderableImage` 를 draw 합니다. 사용자 공간으로부터 디바이스 공간에의 변환은,`Graphics2D` 에서의 현재의 `Transform` 에 의해 행해집니다. 지정된 변환은,`Graphics2D` 문맥의 변환 속성에 적용되기 전에 이미지에 적용됩니다. 적용되는 draw 속성에는,`Clip`,`Transform`, 및 `Composite` 의 각 속성이 있습니다. 다만, 지정된 변환이 역변환을 가지지 않는 경우, draw는 행해지지 않습니다.

  `Graphics2D` 객체로 설정된 draw 힌트는,`RenderableImage` 의 draw에 사용할 수 있습니다. 특정의 `RenderableImage` 에 의해 인식된 특정의 힌트에 명시적인 제어가 필요한 경우나, 어느 힌트가 사용될까를 알아 둘 필요가 있는 경우에는,`RenderedImage` 를 `RenderableImage` 로부터 직접 취득해,`drawRenderedImage` 를 사용해 draw 할 필요가 있습니다.

  파라미터:
    `img` - draw 되는 이미지. `img` 가 null 의 경우에는 아무것도 실시하지 않는
    `xform` - 이미지 공간으로부터 사용자 공간에의 변환
  관련 항목:
    `transform(java.awt.geom.AffineTransform)` , `setTransform(java.awt.geom.AffineTransform)` , `setComposite(java.awt.Composite)` , `clip(java.awt.Shape)` , `Graphics.setClip(int, int, int, int)` , `drawRenderedImage(java.awt.image.RenderedImage, java.awt.geom.AffineTransform)`

### drawString

    public abstract void drawString(String  str,
                                    int x,
                                    int y)

  `Graphics2D` 문맥의 현재의 텍스트 속성 상태를 사용하는 것으로, 지정된 `String` 의 텍스트를 draw 합니다. 최초의 문자의 baseline는, 사용자 공간의 것 (x, y)에 위치합니다. 적용되는 draw 속성에는,`Clip`,`Transform`,`Paint`,`Font`, 및 `Composite` 의 각 속성이 있습니다. 헤브라이어나 아라비아어등의 필기 시스템의 문자에서는, Glyph는 오른쪽에서 왼쪽으로 draw 됩니다. 이 경우에는, 지정된 좌표는 baseline의 좌단의 문자 위치에 있습니다.

  정의:
    클래스 `Graphics` 내의 `drawString`
  파라미터:
    `str` - draw 되는 캐릭터 라인
    `x` - `String` 가 draw 된다 위치의 x 좌표
    `y` - `String` 가 draw 된다 위치의 y 좌표
  예외:
    `NullPointerException` - `str` 가 `null` 의 경우
  도입된 버젼:
    JDK1. 0
  관련 항목:
    `Graphics.drawBytes(byte[], int, int, int, int)` , `Graphics.drawChars(char[], int, int, int, int)`

### drawString

    public abstract void drawString(String  str,
                                    float x,
                                    float y)

  `Graphics2D` 문맥의 현재의 텍스트 속성 상태를 사용하는 것으로, 특정의 `String` 에 의해 지정된 텍스트를 draw 합니다. 최초의 문자의 baseline는, 사용자 공간의 것 (x, y)에 위치합니다. 적용되는 draw 속성에는,`Clip`,`Transform`,`Paint`,`Font`, 및 `Composite` 의 각 속성이 있습니다. 헤브라이어나 아라비아어등의 필기 시스템의 문자에서는, Glyph는 오른쪽에서 왼쪽으로 draw 됩니다. 이 경우에는, 지정된 좌표는 baseline의 좌단의 문자 위치에 있습니다.

  파라미터:
    `str` - draw 되는 `String`
    `x` - `String` 가 draw 된다 위치의 x 좌표
    `y` - `String` 가 draw 된다 위치의 y 좌표
  예외:
    `NullPointerException` - `str` 가 null 의 경우
  관련 항목:
    `setPaint(java.awt.Paint)` , `Graphics.setColor(java.awt.Color)` , `Graphics.setFont(java.awt.Font)` , `setTransform(java.awt.geom.AffineTransform)` , `setComposite(java.awt.Composite)` , `Graphics.setClip(int, int, int, int)`

### drawString

    public abstract void drawString(AttributedCharacterIterator  iterator,
                                    int x,
                                    int y)

  지정된 반복자에 의해 텍스트를 그려,`TextAttribute` 클래스의 스펙에 근거해 속성을 적용합니다.

  최초의 문자의 baseline는, 사용자 공간의 것 (x, y)에 위치합니다. 헤브라이어나 아라비아어등의 필기 시스템의 문자에서는, Glyph는 오른쪽에서 왼쪽으로 draw 됩니다. 이 경우에는, 지정된 좌표는 baseline의 좌단의 문자 위치에 있습니다.

  정의:
    클래스 `Graphics` 내의 `drawString`
  파라미터:
    `iterator` - draw 되는 텍스트를 가지는 반복자
    `x` - 반복자의 텍스트가 draw 된다 x 좌표
    `y` - 반복자의 텍스트가 draw 된다 y 좌표
  예외:
    `NullPointerException` - `iterator` 가 null 의 경우
  관련 항목:
    `setPaint(java.awt.Paint)` , `Graphics.setColor(java.awt.Color)` , `setTransform(java.awt.geom.AffineTransform)` , `setComposite(java.awt.Composite)` , `Graphics.setClip(int, int, int, int)`

### drawString

    public abstract void drawString(AttributedCharacterIterator  iterator,
                                    float x,
                                    float y)

  지정된 반복자에 의해 텍스트를 그려,`TextAttribute` 클래스의 스펙에 근거해 속성을 적용합니다.

  최초의 문자의 baseline는, 사용자 공간의 것 (x, y)에 위치합니다. 헤브라이어나 아라비아어등의 필기 시스템의 문자에서는, Glyph는 오른쪽에서 왼쪽으로 draw 됩니다. 이 경우에는, 지정된 좌표는 baseline의 좌단의 문자 위치에 있습니다.

  파라미터:
    `iterator` - draw 되는 텍스트를 가지는 반복자
    `x` - 반복자의 텍스트가 draw 된다 x 좌표
    `y` - 반복자의 텍스트가 draw 된다 y 좌표
  예외:
    `NullPointerException` - `iterator` 가 null 의 경우
  관련 항목:
    `setPaint(java.awt.Paint)` , `Graphics.setColor(java.awt.Color)` , `setTransform(java.awt.geom.AffineTransform)` , `setComposite(java.awt.Composite)` , `Graphics.setClip(int, int, int, int)`

### drawGlyphVector

    public abstract void drawGlyphVector(GlyphVector  g,
                                         float x,
                                         float y)

  `Graphics2D` 문맥의 draw 속성을 사용하는 것으로, 지정된 `GlyphVector` 의 텍스트를 draw 합니다. 적용되는 draw 속성에는,`Clip`,`Transform`,`Paint`, 및 `Composite` 의 각 속성이 있습니다. `GlyphVector` 는, 개개의 Glyph를 `Font` 로부터 지정합니다. 또,`GlyphVector` 는, Glyph의 위치도 포함할 수 있습니다. 이 메소드를 사용하면(자), 화면에 일련의 캐릭터 라인을 가장 빠르게 draw 할 수 있습니다.

  파라미터:
    `g` - draw 되는 `GlyphVector`
    `x` - Glyph가 draw 되는 사용자 공간의 x 위치
    `y` - Glyph가 draw 되는 사용자 공간의 y 위치
  예외:
    `NullPointerException` - `g` 가 `null` 의 경우
  관련 항목:
    `Font.createGlyphVector(java.awt.font.FontRenderContext, java.lang.String)` , `GlyphVector` , `setPaint(java.awt.Paint)` , `Graphics.setColor(java.awt.Color)` , `setTransform(java.awt.geom.AffineTransform)` , `setComposite(java.awt.Composite)` , `Graphics.setClip(int, int, int, int)`

### fill

    public abstract void fill(Shape  s)

  `Graphics2D` 문맥의 설정을 사용하는 것으로,`Shape` 의 내부를 전부 칠합니다. 적용되는 draw 속성에는,`Clip`,`Transform`,`Paint`, 및 `Composite` 의 각 속성이 있습니다.

  파라미터:
    `s` - 전부 칠해지는 `Shape`
  관련 항목:
    `setPaint(java.awt.Paint)` , `Graphics.setColor(java.awt.Color)` , `transform(java.awt.geom.AffineTransform)` , `setTransform(java.awt.geom.AffineTransform)` , `setComposite(java.awt.Composite)` , `clip(java.awt.Shape)` , `Graphics.setClip(int, int, int, int)`

### hit

    public abstract boolean hit(Rectangle  rect,
                                Shape  s,
                                boolean onStroke)

  지정된 `Shape` 가 지정된 `Rectangle` (디바이스 공간에 있다)와 교차할지 어떨지를 판정합니다. `onStroke` 가 false 의 경우, 이 메소드는 지정된 `Shape` 의 내부가 지정된 `Rectangle` 와 교차할지 어떨지를 조사합니다. `onStroke` 가 `true` 의 경우, 이 메소드는 지정된 `Shape` 의 윤곽의 `Stroke` 가 지정된 `Rectangle` 와 교차할지 어떨지를 조사합니다. 고려되는 draw 속성에는,`Clip`,`Transform`, 및 `Stroke` 의 각 속성이 있습니다.

  파라미터:
    `rect` - 히트를 조사하는 디바이스 공간의 영역
    `s` - 히트를 조사하는 `Shape`
    `onStroke` - stroke로 draw 된 형상을 조사할까 전부 칠해진 형상을 조사하는지를 선택하는 플래그. 플래그가 `true` 의 경우는, `Stroke` 의 윤곽이 조사할 수 있다. 플래그가 `false` 의 경우는, 전부 칠해진 `Shape` 가 조사할 수 있다
  반환값:
    히트가 있는 경우는 `true`, 그렇지 않은 경우는 `false`
  관련 항목:
    `setStroke(java.awt.Stroke)` , `fill(java.awt.Shape)` , `draw(java.awt.Shape)` , `transform(java.awt.geom.AffineTransform)` , `setTransform(java.awt.geom.AffineTransform)` , `clip(java.awt.Shape)` , `Graphics.setClip(int, int, int, int)`

### getDeviceConfiguration

    public abstract GraphicsConfiguration  getDeviceConfiguration()

  이 `Graphics2D` 에 관련한 디바이스 구성을 돌려줍니다.

  반환값:
    이 `Graphics2D` 속성의 디바이스 구성

### setComposite

    public abstract void setComposite(Composite  comp)

  `Graphics2D` 문맥의 `Composite` 를 설정합니다. `Composite` 는,`drawImage`,`drawString`,`draw`, 및 `fill` 등의 모든 draw 메소드로 사용됩니다. `Composite` 는, 그래픽스 디바이스에서의 draw 처리중에 새로운 픽셀이 기존의 픽셀과 어떻게 결합되는지를 지정합니다.

  이 `Graphics2D` 문맥이 표시 화면의 `Component` 에 draw 되고 있는 경우,`Composite` 는 `AlphaComposite` 클래스의 인스턴스가 아닌 커스텀 객체입니다. 시큐리티 매니저가 있는 경우는, 시큐리티 매니저의 `checkPermission` 메소드가 액세스권 `AWTPermission("readDisplayPixels")` 를 지정해 불려 갑니다.

  파라미터:
    `comp` - draw에 사용되는 `Composite` 객체
  예외:
    `SecurityException` - 화면에 draw 하기 위해서 커스텀 `Composite` 객체가 사용되고 있어 시큐리티 매니저가 설정되어 있는 경우에, 시큐리티 매니저의 `checkPermission` 메소드가 이 조작을 허가하지 않을 때
  관련 항목:
    `Graphics.setXORMode(java.awt.Color)` , `Graphics.setPaintMode()` , `getComposite()` , `AlphaComposite` , `SecurityManager.checkPermission(java.security.Permission)` , `AWTPermission`

### setPaint

    public abstract void setPaint(Paint  paint)

  `Graphics2D` 문맥에 `Paint` 속성을 설정합니다. 이 메소드를 `null` `Paint` 객체로 호출해도, 이 `Graphics2D` 의 현재의 `Paint` 속성에는 영향을 주지 않습니다.

  파라미터:
    `paint` - draw 프로세스로 색을 생성하기 위해서 사용된다 `Paint`, 또는 `null`
  관련 항목:
    `Graphics.setColor(java.awt.Color)` , `getPaint()` , `GradientPaint` , `TexturePaint`

### setStroke

    public abstract void setStroke(Stroke  s)

  `Graphics2D` 문맥의 `Stroke` 를 설정합니다.

  파라미터:
    `s` - draw 프로세스로 `Shape` 를 stroke로 draw 하기 위해서 사용되는 `Stroke` 객체
  관련 항목:
    `BasicStroke` , `getStroke()`

### setRenderingHint

    public abstract void setRenderingHint(RenderingHints.Key  hintKey,
                                          Object  hintValue)

  draw 알고리즘의 추천 설정의 값을 1 개 설정합니다. Hint 카테고리에는, draw 품질을 제어하는 것으로, draw 프로세스에서의 draw 속도와 draw 품질과의 전체적인 타협점을 제어하는 것이 포함됩니다. `RenderingHints` 클래스에서, 공통의 키와 값의 정의의 일부를 참조할 수 있습니다.

  파라미터:
    `hintKey` - 설정되는 힌트의 키
    `hintValue` - 지정된 힌트 카테고리의 추천 설정을 가리키는 값
  관련 항목:
    `getRenderingHint(RenderingHints.Key)` , `RenderingHints`

### getRenderingHint

    public abstract Object  getRenderingHint(RenderingHints.Key  hintKey)

  draw 알고리즘의 추천 설정의 값을 1 개 돌려줍니다. Hint 카테고리에는, draw 품질을 제어하는 것으로, draw 프로세스에서의 draw 속도와 draw 품질과의 전체적인 타협점을 제어하는 것이 포함됩니다. `RenderingHints` 클래스에서, 공통의 키와 값의 정의의 일부를 참조할 수 있습니다.

  파라미터:
    `hintKey` - 취득하는 힌트에 대응하는 키
  반환값:
    지정된 힌트 키의 값을 나타내는 객체. 몇개의 키와 그 키에 관련한 값은 `RenderingHints` 클래스에서 정의되고 있는
  관련 항목:
    `RenderingHints` , `setRenderingHint(RenderingHints.Key, Object)`

### setRenderingHints

    public abstract void setRenderingHints(Map <?,?> hints)

  draw 알고리즘의 모든 추천 설정의 값을, 지정된 `hints` 에 옮겨놓습니다. draw 힌트의 기존의 값은 모두 파기되어 기존의 힌트와 값의 새로운 세트가 지정된 `Map` 객체로부터 초기화됩니다. Hint 카테고리에는, draw 품질을 제어하는 것으로, draw 프로세스에서의 draw 속도와 draw 품질과의 전체적인 타협점을 제어하는 것이 포함됩니다. `RenderingHints` 클래스에서, 공통의 키와 값의 정의의 일부를 참조할 수 있습니다.

  파라미터:
    `hints` - 설정되는 draw 힌트
  관련 항목:
    `getRenderingHints()` , `RenderingHints`

### addRenderingHints

    public abstract void addRenderingHints(Map <?,?> hints)

  draw 알고리즘에 관한 임의의 수의 추천 설정의 값을 설정합니다. 지정된 `Map` 객체에 있는 draw 힌트의 값만이 변경됩니다. 지정된 객체에 없는 추천 설정은 변경되지 않습니다. Hint 카테고리에는, draw 품질을 제어하는 것으로, draw 프로세스에서의 draw 속도와 draw 품질과의 전체적인 타협점을 제어하는 것이 포함됩니다. `RenderingHints` 클래스에서, 공통의 키와 값의 정의의 일부를 참조할 수 있습니다.

  파라미터:
    `hints` - 설정되는 draw 힌트
  관련 항목:
    `RenderingHints`

### getRenderingHints

    public abstract RenderingHints  getRenderingHints()

  draw 알고리즘의 추천 설정을 돌려줍니다. Hint 카테고리에는, draw 품질을 제어하는 것으로, draw 프로세스에서의 draw 속도와 draw 품질과의 전체적인 타협점을 제어하는 것이 포함됩니다. 1 회의 오퍼레이션으로 지정된 모든 힌트 키와 값의 페어를 돌려줍니다. `RenderingHints` 클래스에서, 공통의 키와 값의 정의의 일부를 참조할 수 있습니다.

  반환값:
    현재의 추천 설정을 포함하고 있는 `RenderingHints` 의 인스턴스에의 참조
  관련 항목:
    `RenderingHints` , `setRenderingHints(Map)`

### translate

    public abstract void translate(int x,
                                   int y)

  `Graphics2D` 문맥의 원점을, 현재의 좌표계의 점 (x, y)으로 이동합니다. `Graphics2D` 문맥을 수정해, 새로운 원점이 `Graphics2D` 문맥의 원의 좌표계의 점 (x, y)에 대응하도록(듯이) 합니다. 이 그래픽스 문맥으로 그 이후의 draw 조작으로 사용되는 좌표는 모두, 이 새로운 원점을 기준으로 합니다.

  정의:
    클래스 `Graphics` 내의 `translate`
  파라미터:
    `x` - 지정된 x 좌표
    `y` - 지정된 y 좌표
  도입된 버젼:
    JDK1. 0

### translate

    public abstract void translate(double tx,
                                   double ty)

  현재의 `Graphics2D` `Transform` 를 이동 변환과 연결합니다. 이후의 draw는, 이전의 위치를 기준으로 지정된 거리로 이동합니다. 이것은, transform(T)를 호출하는 것에 상당합니다. 다만, T 는 다음의 행렬에 의해 표현되는 `AffineTransform` 입니다.

                      [   1    0    tx  ]
                      [   0    1    ty  ]
                      [   0    0    1   ]

  파라미터:
    `tx` - x 축으로 따라 이동하는 거리
    `ty` - y 축으로 따라 이동하는 거리

### rotate

    public abstract void rotate(double theta)

  현재의 `Graphics2D` `Transform` 를 회전 변환과 연결합니다. 이후의 draw는, 이전의 원점을 기준으로 지정된 라디안으로 회전합니다. 이것은,`transform(R)` 를 호출하는 것에 상당합니다. 다만, R 는 다음의 행렬에 의해 표현되는 `AffineTransform` 입니다.

                      [   cos(theta)    -sin(theta)    0   ]
                      [   sin(theta)     cos(theta)    0   ]
                      [       0              0         1   ]

  정의 각도 theta 로 회전하면(자), 정의 x 축의 점이 정의 y 축으로 향해 회전됩니다.

  파라미터:
    `theta` - 라디안으로 나타낸 회전 각도

### rotate

    public abstract void rotate(double theta,
                                double x,
                                double y)

  현재의 `Graphics2D` `Transform` 를 이동 후의 회전 변환과 연결합니다. 이후의 draw는, 지정된 위치로 이동해, 지정된 라디안으로 회전해, 원의 평행이동과 같은 양으로 평행이동 다시 하는 것으로 작성되는 변환에 의해 변환됩니다. 이것은, 다음의 calling sequence에 상당합니다.

                      translate(x, y);
                      rotate(theta);
                      translate(-x, -y);

  정의 각도 theta 로 회전하면(자), 정의 x 축의 점이 정의 y 축으로 향해 회전됩니다.

  파라미터:
    `theta` - 라디안으로 나타낸 회전 각도
    `x` - 회전의 원점의 x 좌표
    `y` - 회전의 원점의 y 좌표

### scale

    public abstract void scale(double sx,
                               double sy)

  현재의 `Graphics2D` `Transform` 를 슬캘링 변환과 연결합니다. 이후의 draw는, 이전의 슬캘링을 기준으로 지정된 슬캘링 계수에 따라 사이즈 변경됩니다. 이것은,`transform(S)` 를 호출하는 것에 상당합니다. 다만, S 는 다음의 행렬에 의해 표현되는 `AffineTransform` 입니다.

                      [   sx   0    0   ]
                      [   0    sy   0   ]
                      [   0    0    1   ]

  파라미터:
    `sx` - 이후의 draw 조작의 X 좌표가 이전의 draw 조작을 기준에 곱셈되는 양
    `sy` - 이후의 draw 조작의 Y 좌표가 이전의 draw 조작을 기준에 곱셈되는 양

### shear

    public abstract void shear(double shx,
                               double shy)

  현재의 `Graphics2D` `Transform` 를 셔링 변환과 연결합니다. 이후의 draw는, 이전의 위치를 기준으로 지정된 승수로 셔링 됩니다. 이것은,`transform(SH)` 를 호출하는 것에 상당합니다. 다만, SH 는 다음의 행렬에 의해 표현되는 `AffineTransform` 입니다.

                      [   1   shx   0   ]
                      [  shy   1    0   ]
                      [   0    0    1   ]

  파라미터:
    `shx` - Y 좌표의 함수로서 좌표를 정의 X 축방향으로 쉬프트하기 위한 승수
    `shy` - X 좌표의 함수로서 좌표를 정의 Y 축방향으로 쉬프트하기 위한 승수

### transform

    public abstract void transform(AffineTransform  Tx)

  `AffineTransform` 객체를 이 `Graphics2D` 에서의 `Transform` 를 사용해, 후 지정 우선 적용이라고 하는 규칙에 따라 변환합니다. 현재의 `Transform` 가 Cx 인 경우, Tx 에 의한 변환의 결과는 새로운 `Transform` Cx'가 됩니다. Cx'는, 이 `Graphics2D` 용의 현재의 `Transform` 가 됩니다. 갱신된 `Transform` Cx'로 점 p 를 변환하는 것은, 최초로 Tx 로 p 를 변환하고 나서, 그 결과를 원의 `Transform` Cx 로 변환하는 것에 상당합니다. 즉, Cx'(p) = Cx(Tx(p))입니다. 필요에 따라서 Tx 의 카피를 실시하면, Tx 를 그 이상 수정해도 draw에 영향을 주지 않습니다.

  파라미터:
    `Tx` - 현재의 `Transform` 로 변환된다 `AffineTransform` 객체
  관련 항목:
    `setTransform(java.awt.geom.AffineTransform)` , `AffineTransform`

### setTransform

    public abstract void setTransform(AffineTransform  Tx)

  `Graphics2D` 문맥으로 Transform 를 덧쓰기합니다. 경고:이 메소드는 새로운 좌표변화를 기존의 변환상에서 적용하는 목적에서는 사용하지 말아 주세요. 이것은,`Graphics2D` 에는, Swing 컴퍼넌트의 draw 또는 프린터의 해상도를 조정하기 위한 슬캘링 변환의 적용 등, 다른 목적을 위해서(때문에) 필요한 변환이 벌써 포함되어 있기 때문입니다.

  좌표변화를 추가하기 위해서,`transform`,`rotate`,`scale`, 또는`shear` 메소드를 사용합니다. `setTransform` 는, 이 예로 나타나고 있는 대로, draw 종료후에 원의 `Graphics2D` 변환을 복원하기 (위해)때문에인 만큼 사용됩니다.

       // Get the current transform
       AffineTransform saveAT = g2.getTransform();
       // Perform transformation
       g2d.transform(...);
       // Render
       g2d.draw(...);
       // Restore original transform
       g2d.setTransform(saveAT);

  파라미터:
    `Tx` - `getTransform` 메소드로부터 취득되었다 `AffineTransform`
  관련 항목:
    `transform(java.awt.geom.AffineTransform)` , `getTransform()` , `AffineTransform`

### getTransform

    public abstract AffineTransform  getTransform()

  `Graphics2D` 문맥에서의 현재의 `Transform` 의 카피를 돌려줍니다.

  반환값:
    `Graphics2D` 문맥에서의 현재의 `AffineTransform`
  관련 항목:
    `transform(java.awt.geom.AffineTransform)` , `setTransform(java.awt.geom.AffineTransform)`

### getPaint

    public abstract Paint  getPaint()

  `Graphics2D` 문맥에서의 현재의 `Paint` 를 돌려줍니다.

  반환값:
    색 또는 패턴을 정의하는 현재의 `Graphics2D` `Paint`
  관련 항목:
    `setPaint(java.awt.Paint)` , `Graphics.setColor(java.awt.Color)`

### getComposite

    public abstract Composite  getComposite()

  `Graphics2D` 문맥에서의 현재의 `Composite` 를 돌려줍니다.

  반환값:
    거듭해 맞댐 스타일을 정의하는 현재의 `Graphics2D` `Composite`
  관련 항목:
    `setComposite(java.awt.Composite)`

### setBackground

    public abstract void setBackground(Color  color)

  `Graphics2D` 문맥의 백그라운드 칼라를 설정합니다. 백그라운드 칼라는, 영역을 클리어 하기 위해서 사용됩니다. `Graphics2D` 를 `Component` 용으로 작성하면(자), 백그라운드 칼라가 `Component` 로부터 상속됩니다. `Graphics2D` 문맥에서의 백그라운드 칼라를 설정해도, 그 이후의 `clearRect()` 호출해에 작용하는 것만으로,`Component` 의 백그라운드 칼라에는 영향을 미치지 않습니다. `Component` 의 백그라운드를 변경하려면 ,`Component` 의 적절한 메소드를 사용합니다.

  파라미터:
    `color` - 이후의 `clearRect` 의 호출로 사용되는 백그라운드 칼라
  관련 항목:
    `getBackground()` , `Graphics.clearRect(int, int, int, int)`

### getBackground

    public abstract Color  getBackground()

  영역을 클리어 하는데 사용하는 백그라운드 칼라를 돌려줍니다.

  반환값:
    백그라운드 칼라를 정의하는 현재의 `Graphics2D` `Color`
  관련 항목:
    `setBackground(java.awt.Color)`

### getStroke

    public abstract Stroke  getStroke()

  `Graphics2D` 문맥에서의 현재의 `Stroke` 를 돌려줍니다.

  반환값:
    선의 스타일을 정의하는 현재의 `Graphics2D` `Stroke`
  관련 항목:
    `setStroke(java.awt.Stroke)`

### clip

    public abstract void clip(Shape  s)

  현재의 `Clip` 가 지정된 `Shape` 의 내부와 교차시켜, 결과적으로 생긴 공통 부분에 그 `Clip` 를 설정합니다. 지정된 `Shape` 는, 현재의 `Clip` 와 교차하기 전에, 현재의 `Graphics2D` `Transform` 를 사용해 변환됩니다. 이 메소드를 사용하면(자), 현재의 `Clip` 를 작게 할 수 있습니다. ``Clip` 를 크게 하려면 ,`setClip` 메소드를 사용합니다. 이 메소드에 의해 변경된 사용자 클립은, 디바이스의 경계 및 가시성과 관련한 클리핑과는 무관계합니다. 지금까지 설정되어 있는 클립이 없는 경우, 또는 `setClip` 에 `null` 인수를 사용해 클립이 클리어 되고 있는 경우는, 지정된 `Shape` 가 새로운 사용자 클립이 됩니다.

  `
  파라미터:
    `s` - 현재의 `Clip` 와 교차한다 `Shape`. `s` 가 `null` 의 경우, 이 메소드는 현재의 `Clip` 를 클리어 한다

### getFontRenderContext

    public abstract FontRenderContext  getFontRenderContext()

  이 `Graphics2D` 문맥에서의 `Font` 의 draw 문맥을 돌려줍니다. `FontRenderContext` 는, 에일리어징 제거나 부분 메트릭스등의 어플리케이션 힌트외, 타겟 디바이스에 특유의 해상도 (dpi)등의 정보를 캡슐화합니다. 이러한 정보는,`Font` 나 `TextLayout` 등의 문자 체재의 포맷을 실행하는 객체의 사용시에 어플리케이션에 의해 제공됩니다. 이 정보는 또, 각종 draw 힌트가 텍스트 draw에 적용되었을 때에, 그 자체의 레이아웃을 실행해, 유효폭이나 행의 높이 등, Glyph의 각종 특성의 정확한 계측을 필요로 하는 어플리케이션에 의해 제공되지 않으면 안됩니다.

  반환값:
    FontRenderContext 의 인스턴스에의 참조
  도입된 버젼:
    1.2
  관련 항목:
    `FontRenderContext` , `Font.createGlyphVector(java.awt.font.FontRenderContext, java.lang.String)` , `TextLayout`

개요 | 패키지 | 클래스 | 사용 | 계층 트리 | 비추천 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 도 참조해 주세요.