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

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

JavaTM Platform
Standard Ed. 6

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

## java.awt
인터페이스 Shape

기존의 구현 클래스의 일람:
  Arc2D , Arc2D.Double , Arc2D.Float , Area , BasicTextUI.BasicCaret , CubicCurve2D , CubicCurve2D.Double , CubicCurve2D.Float , DefaultCaret , Ellipse2D , Ellipse2D.Double , Ellipse2D.Float , GeneralPath , Line2D , Line2D.Double , Line2D.Float , Path2D , Path2D.Double , Path2D.Float , Polygon , QuadCurve2D , QuadCurve2D.Double , QuadCurve2D.Float , Rectangle , Rectangle2D , Rectangle2D.Double , Rectangle2D.Float , RectangularShape , RoundRectangle2D , RoundRectangle2D.Double , RoundRectangle2D.Float

    public interface Shape

`Shape` 인터페이스는, 하등의 기하학적인 형태를 나타내는 객체의 정의를 제공합니다. `Shape` 는,`Shape` 의 윤곽과 윤곽이 어떻게 2D 평면을 내부 영역의 점과 외부 영역의 점과에 분할할까를 결정하는 규칙을 나타낼 수가 있는 `PathIterator` 객체에 의해 기술됩니다. 각 `Shape` 객체는, 기하학적 도형의 바운딩 박스를 취득하거나 점 또는 구형의 일부 또는 전체가 `Shape` 의 내부 영역내에 있을지 어떨지를 판정하거나`Shape` 의 윤곽의 궤도 윤곽선을 기술하는 `PathIterator` 객체를 취득하거나하기 위한 콜백을 제공합니다.

안쪽의 정의: 점은, 다음과 같은 경우에만 `Shape` 의 안쪽에 있다고 보여집니다.

- `Shape` 의 경계의 완전하게 안쪽에 있는 경우
- `Shape` 의 경계선상에 위치해, 그 점에 인접하는,`X` 축방향의 플러스 측에 있는 스페이스가 완전하게 경계내에 들어가는 경우
- 수평 방향의 경계 세그먼트(segment)상에 위치해, 그 점에 인접하는,`Y` 축방향의 플러스 측에 있는 스페이스가 경계내에 들어가는 경우

`contains` 와 `intersects` 메소드는,`Shape` 의 내부가 전부 칠해져 있는 것과 같게 닫혀진 영역이라고 봅니다. 즉, 형상이 구형을 포함하고 있는지, 구형과 교차하고 있든가, 혹은 형상이 점을 포함하고 있는지를 판정하기 위해서, 이러한 메소드가, 닫혀지지 않은 형상을 닫혀지고 있는 것과 암묵적으로 보는 것을 의미합니다.

도입된 버젼:
  1.2
관련 항목:
  `PathIterator` , `AffineTransform` , `FlatteningPathIterator` , `GeneralPath`

메소드의 개요
`boolean` | `contains (double x, double y)` 지정된 좌표가 `Shape` 의 경계내에 있을지 어떨지를 판정합니다.
`boolean` | `contains (double x, double y, double w, double h)` `Shape` 의 내부 영역이, 지정된 구형 영역을 완전하게 포함 할지 어떨지를 판정합니다.
`boolean` | `contains (Point2D p)` 지정된 `Point2D` 가 `Shape` 의 경계내에 있을지 어떨지를 판정합니다.
`boolean` | `contains (Rectangle2D r)` `Shape` 의 내부가, 지정된 `Rectangle2D` 를 완전하게 내포 할지 어떨지를 판정합니다.
`Rectangle` | `getBounds ()` `Shape` 를 완전하게 둘러싸는 정수형 `Rectangle` 를 돌려줍니다.
`Rectangle2D` | `getBounds2D ()` 고정밀도로 `getBounds` 메소드보다 정밀한,`Shape` 의 바운딩 박스를 돌려줍니다.
`PathIterator` | `getPathIterator (AffineTransform at)` `Shape` 의 경계를 따라 반복 처리를 실시해,`Shape` 의 윤곽의 기하학적 도형에 액세스 할 수 있도록(듯이) 하는 반복자 객체를 돌려줍니다.
`PathIterator` | `getPathIterator (AffineTransform at, double flatness)` `Shape` 의 경계를 따라 반복 처리를 실시해,`Shape` 의 윤곽의 기하학적 도형의 평탄화 된 뷰에 액세스 할 수 있도록(듯이) 하는 반복자 객체를 돌려줍니다.
`boolean` | `intersects (double x, double y, double w, double h)` `Shape` 의 내부 영역이, 지정된 구형 영역의 내부 영역과 교차할지 어떨지를 판정합니다.
`boolean` | `intersects (Rectangle2D r)` `Shape` 의 내부가, 지정된 `Rectangle2D` 의 내부와 교차할지 어떨지를 판정합니다.

메소드의 상세

### getBounds

    Rectangle  getBounds()

  `Shape` 를 완전하게 둘러싸는 정수형 `Rectangle` 를 돌려줍니다. 반환된 `Rectangle` 가 `Shape` 를 둘러싸는 최소의 바운딩 박스이다고는 할 수 없습니다. 나타난 `Rectangle` 내에 `Shape` 가 완전하게 수습된다고 할 뿐입니다. 또,`Shape` 가 정수형의 제한 범위를 넘는 경우, 반환된 `Rectangle` 는 `Shape` 를 완전하게 둘러싸지 못하는 것도 있습니다. 일반적으로은,`getBounds2D` 메소드가, 표현의 자유도가 높기 위해(때문에), 비교적 딱 한 바운딩 박스를 돌려줍니다.

  반환값:
    `Shape` 를 완전하게 둘러싸는 정수형의 `Rectangle`
  도입된 버젼:
    1.2
  관련 항목:
    `getBounds2D()`

### getBounds2D

    Rectangle2D  getBounds2D()

  고정밀도로 `getBounds` 메소드보다 정밀한,`Shape` 의 바운딩 박스를 돌려줍니다. 반환된 `Rectangle2D` 가 `Shape` 를 둘러싸는 최소의 바운딩 박스이다고는 할 수 없습니다. 나타난 `Rectangle2D` 내에 `Shape` 가 완전하게 수습된다고 할 뿐입니다. 반환값을, 배정밀도치를 사용해 치수를 포함하는 `Rectangle2D` 의 인스턴스로 할 수도 있기 (위해)때문에, 이 메소드에 의해 반환되는 바운딩 박스는, 일반적으로,`getBounds` 메소드에 의해 반환되는 바운딩 박스보다 딱 한 것이 되어, 오버플로우를 위해서(때문에) 실패할 것은 없습니다.

  반환값:
    `Shape` 의 고정밀도 바운딩 박스를 나타낸다 `Rectangle2D` 의 인스턴스
  도입된 버젼:
    1.2
  관련 항목:
    `getBounds()`

### contains

    boolean contains(double x,
                     double y)

  지정된 좌표가 `Shape` 의 경계내에 있을지 어떨지를 판정합니다.

  파라미터:
    `x` - 판정 대상의 지정된 X 좌표
    `y` - 판정 대상의 지정된 Y 좌표
  반환값:
    지정된 좌표가 `Shape` 의 경계내에 있는 경우는 `true`, 그렇지 않은 경우는 `false`
  도입된 버젼:
    1.2

### contains

    boolean contains(Point2D  p)

  지정된 `Point2D` 가 `Shape` 의 경계내에 있을지 어떨지를 판정합니다.

  파라미터:
    `p` - 판정 대상의, 지정된 `Point2D`
  반환값:
    지정된 `Point2D` 가 `Shape` 의 경계내에 있는 경우는 `true`, 그렇지 않은 경우는 `false`
  도입된 버젼:
    1.2

### intersects

    boolean intersects(double x,
                       double y,
                       double w,
                       double h)

  `Shape` 의 내부 영역이, 지정된 구형 영역의 내부 영역과 교차할지 어떨지를 판정합니다. `Shape` 의 내부 영역과 지정된 구형 영역의 양쪽 모두에 포함되는 점이 있는 경우, 구형 영역은 `Shape` 와 교차하고 있다고 보여집니다.

  `Shape.intersects()` 메소드를 사용하면(자), 다음과 같은 경우에 `Shape` 구현은 `true` 를 돌려주는 일이 있습니다.

  - 구형 영역과 `Shape` 가 서로 겹치고 있을 가능성이 꽤 높지만,
  - 이 공통 부분을 정확하게 판단하는 계산의 부하가 꽤 크다
  즉,`Shape` 에 따라서는, 구형 영역이 `Shape` 와 교차하지 않는 경우에서도 이 메소드가 `true` 를 돌려주는 일이 있습니다. `Area` 클래스는, 대부분의 `Shape` 객체의 기하학적인 공통 부분의 것보다 정밀한 계산을 실시하기 (위해)때문에, 보다 정확한 결과가 필요한 경우에 사용할 수 있습니다.

  파라미터:
    `x` - 지정된 구형 영역의 좌상구석의 X 좌표
    `y` - 지정된 구형 영역의 좌상구석의 Y 좌표
    `w` - 지정된 구형 영역의 폭
    `h` - 지정된 구형 영역의 높이
  반환값:
    `Shape` 의 내부 영역과 구형 영역의 내부 영역이 교차하는 경우, 또는 교차할 가능성이 높지만, 부하가 너무 커 공통 부분의 계산을 실시할 수 없는 경우도 `true`, 그렇지 않은 경우는 `false`
  도입된 버젼:
    1.2
  관련 항목:
    `Area`

### intersects

    boolean intersects(Rectangle2D  r)

  `Shape` 의 내부가, 지정된 `Rectangle2D` 의 내부와 교차할지 어떨지를 판정합니다. `Shape.intersects()` 메소드를 사용하면(자), 다음과 같은 경우에 `Shape` 구현은 `true` 를 돌려주는 일이 있습니다.
  - `Rectangle2D` 와 `Shape` 가 교차할 가능성이 높지만,
  - 이 공통 부분을 정확하게 판단하는 계산의 부하가 꽤 크다
  즉,`Shape` 에 따라서는,`Rectangle2D` 가 `Shape` 와 교차하지 않는 경우에서도 이 메소드가 `true` 를 돌려주는 일이 있습니다. `Area` 클래스는, 대부분의 `Shape` 객체의 기하학적인 공통 부분의 것보다 정밀한 계산을 실시하기 (위해)때문에, 보다 정확한 결과가 필요한 경우에 사용할 수 있습니다.

  파라미터:
    `r` - 지정된 `Rectangle2D`
  반환값:
    `Shape` 의 내부 영역과 지정된 `Rectangle2D` 의 내부 영역이 교차하는 경우, 또는 교차할 가능성이 높지만, 부하가 너무 커 공통 부분의 계산을 실시할 수 없는 경우도 `true`, 그렇지 않은 경우는 `false`
  도입된 버젼:
    1.2
  관련 항목:
    `intersects(double, double, double, double)`

### contains

    boolean contains(double x,
                     double y,
                     double w,
                     double h)

  `Shape` 의 내부 영역이, 지정된 구형 영역을 완전하게 포함 할지 어떨지를 판정합니다. 구형 영역 전체가 `Shape` 에 포함 되고 있다고 보여지기 위해서(때문에)는, 구형 영역내에 있는 모든 좌표가 `Shape` 내에 위치하고 있을 필요가 있습니다.

  `Shape.contains()` 메소드를 사용하면(자), 다음과 같은 경우에 `Shape` 구현은 `false` 를 돌려주는 일이 있습니다.

  - `intersect` 메소드가 `true` 를 돌려주어,
  - `Shape` 가 구형 영역을 완전하게 포함 할지 어떨지를 판별하는 계산의 부하가 꽤 크다
  즉,`Shape` 에 따라서는,`Shape` 가 구형 영역을 포함 하는 경우에서도 이 메소드가 `false` 를 돌려주는 일이 있습니다. `Area` 클래스는, 대부분의 `Shape` 객체의 것보다 정밀한 기하학적 계산을 실시하기 (위해)때문에, 보다 정확한 결과가 필요한 경우에 사용할 수 있습니다.

  파라미터:
    `x` - 지정된 구형 영역의 좌상구석의 X 좌표
    `y` - 지정된 구형 영역의 좌상구석의 Y 좌표
    `w` - 지정된 구형 영역의 폭
    `h` - 지정된 구형 영역의 높이
  반환값:
    `Shape` 의 내부 영역이, 지정된 구형 영역을 완전하게 포함 하는 경우는 `true`, 그렇지 않은 경우는 `false`. 또,`Shape` 가 구형 영역을 포함 해, `intersects` 메소드가 `true` 를 돌려주어, 부하가 너무 커 포함의 계산을 실시할 수 없는 경우도 `false`
  도입된 버젼:
    1.2
  관련 항목:
    `Area` , `intersects(double, double, double, double)`

### contains

    boolean contains(Rectangle2D  r)

  `Shape` 의 내부가, 지정된 `Rectangle2D` 를 완전하게 내포 할지 어떨지를 판정합니다. `Shape.contains()` 메소드를 사용하면(자), 다음과 같은 경우에 `Shape` 구현은 `false` 를 돌려주는 일이 있습니다.
  - `intersect` 메소드가 `true` 를 돌려주어,
  - `Shape` 가 `Rectangle2D` 를 완전하게 포함 할지 어떨지를 판단하는 계산의 부하가 크다
  즉,`Shape` 에 따라서는,`Shape` 가 `Rectangle2D` 를 포함 하는 경우에서도 이 메소드가 `false` 를 돌려주는 일이 있습니다. `Area` 클래스는, 대부분의 `Shape` 객체의 것보다 정밀한 기하학적 계산을 실시하기 (위해)때문에, 보다 정확한 결과가 필요한 경우에 사용할 수 있습니다.

  파라미터:
    `r` - 지정된 `Rectangle2D`
  반환값:
    `Shape` 의 내부 영역이,`Rectangle2D` 를 완전하게 포함 하는 경우는 `true`, 그렇지 않은 경우는 `false`. 또,`Shape` 가 `Rectangle2D` 를 포함 해, `intersects` 메소드가 `true` 를 돌려주어, 부하가 너무 커 포함의 계산을 실시할 수 없는 경우도 `false`
  도입된 버젼:
    1.2
  관련 항목:
    `contains(double, double, double, double)`

### getPathIterator

    PathIterator  getPathIterator(AffineTransform  at)

  `Shape` 의 경계를 따라 반복 처리를 실시해,`Shape` 의 윤곽의 기하학적 도형에 액세스 할 수 있도록(듯이) 하는 반복자 객체를 돌려줍니다. 임의 `AffineTransform` 가 지정되었을 경우, 반복 처리로 반환되는 좌표가 거기에 응해 변환됩니다.

  이 메소드를 호출할 때마다, 동시에 사용되고 있는 것 외의 모든 `PathIterator` 객체 (와)는 관계없는 것으로,`Shape` 객체의 기하학적 도형을 이동하는 새로운 `PathIterator` 객체가 돌려주어집니다.

  `Shape` 인터페이스를 구현하는 객체는, 실행중의 반복 처리를 원의 객체의 기하학적 도형에 대해서 발생할 가능성이 있는 변경으로부터 분리시키는 것이 추천 됩니다만, 이것은 보증되고는 있지 않습니다.

  파라미터:
    `at` - 반복 처리로 돌려주어질 때 좌표에 적용된다 임의의 `AffineTransform`, 변환되어 있지 않은 좌표가 필요한 경우는 `null`
  반환값:
    `Shape` 의 기하학적 도형을 독립해 이동한다 새로운 `PathIterator` 객체
  도입된 버젼:
    1.2

### getPathIterator

    PathIterator  getPathIterator(AffineTransform  at,
                                 double flatness)

  `Shape` 의 경계를 따라 반복 처리를 실시해,`Shape` 의 윤곽의 기하학적 도형의 평탄화 된 뷰에 액세스 할 수 있도록(듯이) 하는 반복자 객체를 돌려줍니다.

  반복자가 돌려주는 것은, 포인트형 SEG_MOVETO, SEG_LINETO, 및 SEG_CLOSE 뿐입니다.

  옵션의 `AffineTransform` 가 지정되면(자), 반복 처리로 반환되는 좌표가 거기에 응해 변환됩니다.

  곡선 세그먼트(segment)의 분할의 양은, 평탄화 되지 않는 변환을 받은 곡선상의 점이, 반환되는 평탄화 된 패스 세그먼트(segment)로부터도 와도 떨어지는 거리를 지정하는 `flatness` 파라미터에 의해 제어됩니다. 평탄화 된 윤곽선의 정밀도에 대해서 예고없이 제한이 더해지는 일이 있어, 이 경우, 매우 작은 평탄화 파라미터가 큰 값으로 해서 다루어지는 일이 있습니다. 이 제한은, 사용되는 특정의 구현에 의해 정해집니다.

  이 메소드를 호출할 때마다, 동시에 사용되고 있는 것 외의 모든 `PathIterator` 객체 (와)는 관계없는 것으로,`Shape` 객체의 기하학적 도형을 이동하는 새로운 `PathIterator` 객체가 돌려주어집니다.

  `Shape` 인터페이스를 구현하는 객체는, 실행중의 반복 처리를 원의 객체의 기하학적 도형에 대해서 발생할 가능성이 있는 변경으로부터 분리시키는 것이 추천 됩니다만, 이것은 보증되고는 있지 않습니다.

  파라미터:
    `at` - 반복 처리로 돌려주어질 때 좌표에 적용된다 임의의 `AffineTransform`, 변환되어 있지 않은 좌표가 필요한 경우는 `null`
    `flatness` - 곡선 세그먼트(segment)를 근사 하기 위해서 사용된다 라인 세그먼트(segment)가, 원의 곡선상의 임의의 점으로부터 떨어질 수가 있는 최대의 거리
  반환값:
    `Shape` 의 기하학적 도형의 평탄화 된 뷰를 독립해 이동하는 새로운 `PathIterator`
  도입된 버젼:
    1.2

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