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 의 안쪽에 있다고 보여집니다.

 

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

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

getBounds2D

Rectangle2D  getBounds2D()
고정밀도로 getBounds 메소드보다 정밀한,Shape 의 바운딩 박스를 돌려줍니다. 반환된 Rectangle2DShape 를 둘러싸는 최소의 바운딩 박스이다고는 할 수 없습니다. 나타난 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)
지정된 Point2DShape 의 경계내에 있을지 어떨지를 판정합니다.

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

intersects

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

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

즉,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 를 돌려주는 일이 있습니다. 즉,Shape 에 따라서는,Rectangle2DShape 와 교차하지 않는 경우에서도 이 메소드가 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 를 돌려주는 일이 있습니다.

즉,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 를 돌려주는 일이 있습니다. 즉,Shape 에 따라서는,ShapeRectangle2D 를 포함 하는 경우에서도 이 메소드가 false 를 돌려주는 일이 있습니다. Area 클래스는, 대부분의 Shape 객체의 것보다 정밀한 기하학적 계산을 실시하기 (위해)때문에, 보다 정확한 결과가 필요한 경우에 사용할 수 있습니다.

파라미터:
r - 지정된 Rectangle2D
반환값:
Shape 의 내부 영역이,Rectangle2D 를 완전하게 포함 하는 경우는 true, 그렇지 않은 경우는 false. 또,ShapeRectangle2D 를 포함 해, 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

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 도 참조해 주세요.