JavaTM Platform
Standard Ed. 6

java.awt.geom
클래스 Area

java.lang.Object 
  상위를 확장 java.awt.geom.Area
모든 구현된 인터페이스:
Shape , Cloneable


public class Area
extends Object
implements Shape , Cloneable

Area 객체는, 2 차원 공간이 닫은 영역에 도착해 해상도에 의존하지 않는 기술을 포함 및 조작합니다. Area 객체는 변환 가능해, 다른 Area 객체와의 결합시에 각종의 CAG (구성 영역 기하학적 도형) 연산을 실행할 수 있습니다. CAG 연산에는 영역의 , , , 및배타적 논리합 등이 있습니다. 각종의 연산의 예에 대해서는, 링크처의 메소드 문서를 참조해 주세요.  

Area 클래스는,Shape 인터페이스를 구현해, 히트 검사기노우 및 패스 반복 기능의 모든 것을 완전하게 지원합니다. 다만 이하와 같은 점으로써,Area 는 일반화된 패스보다 특화되고 있습니다.

Area 의 사용시에 반드시 명백하지 않는 점은 다음과 같습니다.

도입된 버젼:
1.2

생성자 의 개요
Area ()
          빈 상태(empty)의 영역을 작성하는 디폴트 생성자 입니다.
Area (Shape  s)
          Area 클래스는, 지정된 Shape 객체로부터 영역 기하학적 도형을 작성합니다.
 
메소드의 개요
 void add (Area  rhs)
          지정된 Area 의 형상을 이 Area 의 형상에 추가합니다.
 Object clone ()
          이 Area 객체와 완전히 같은 카피를 돌려줍니다.
 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 를 완전하게 내포 할지 어떨지를 판정합니다.
 Area createTransformedArea (AffineTransform  t)
          지정된 AffineTransform 에 의해 변환된 이 Area 와 같은 기하학적 도형을 포함한, 새로운 Area 객체를 작성합니다.
 boolean equals (Area  other)
          2 개의 Area 객체의 기하학적 도형이 동일한지 어떤지를 판정합니다.
 void exclusiveOr (Area  rhs)
          이 Area 의 형상을, 현재의 형상과 지정된 Area 의 형상의 결합 영역으로부터 그 공통 부분을 공제한 영역으로 설정합니다.
 Rectangle getBounds ()
          이 Area 를 완전하게 둘러싸는 바운딘그 Rectangle 를 돌려줍니다.
 Rectangle2D getBounds2D ()
          이 Area 를 완전하게 둘러싸는 고정밀도 바운딘그 Rectangle2D 를 돌려줍니다.
 PathIterator getPathIterator (AffineTransform  at)
          이 Area 객체의 윤곽에 사용하는 PathIterator 를 작성합니다.
 PathIterator getPathIterator (AffineTransform  at, double flatness)
          이 Area 객체의 평탄화한 윤곽을 위한 PathIterator 를 작성합니다.
 void intersect (Area  rhs)
          이 Area 의 형상을, 현재의 형상과 지정된 Area 의 형상의 공통 부분으로 설정합니다.
 boolean intersects (double x, double y, double w, double h)
          Shape 의 내부 영역이, 지정된 구형 영역의 내부 영역과 교차할지 어떨지를 판정합니다.
 boolean intersects (Rectangle2D  r)
          Shape 의 내부가, 지정된 Rectangle2D 의 내부와 교차할지 어떨지를 판정합니다.
 boolean isEmpty ()
          이 Area 객체가 영역을 둘러쌀지 어떨지를 판정합니다.
 boolean isPolygonal ()
          이 Area 가 완전하게, 옆이 직선의 다각형 기하학적 도형으로부터 구성되어 있는지 어떤지를 판정합니다.
 boolean isRectangular ()
          이 Area 의 형상이 구형인가 어떤가를 판정합니다.
 boolean isSingular ()
          이 Area 가 단일의 폐쇄 서브 패스로부터 구성되어 있는지 어떤지를 판정합니다.
 void reset ()
          이 Area 로부터 기하학적 도형을 모두 삭제해, 빈 상태(empty)의 영역에 되돌립니다.
 void subtract (Area  rhs)
          지정된 Area 의 형상을 이 Area 의 형상으로부터 제거합니다.
 void transform (AffineTransform  t)
          이 Area 의 기하학적 도형을, 지정된 AffineTransform 를 사용해 변환합니다.
 
클래스 java.lang. Object 로부터 상속된 메소드
equals , finalize , getClass , hashCode , notify , notifyAll , toString , wait , wait , wait
 

생성자 의 상세

Area

public Area()
빈 상태(empty)의 영역을 작성하는 디폴트 생성자 입니다.

도입된 버젼:
1.2

Area

public Area(Shape  s)
Area 클래스는, 지정된 Shape 객체로부터 영역 기하학적 도형을 작성합니다. Shape 가 닫지 않으면, 기하학적 도형은 명시적으로 닫혀집니다. Shape 의 기하학적 도형으로 지정되고 있는 전부 칠해 규칙 (우기 또는 굴곡)을 사용하면(자), 결과적으로 생성되는 닫은 영역을 지정할 수 있습니다.

파라미터:
s - 영역의 작성측의 Shape
예외:
NullPointerException - s 가 null 의 경우
도입된 버젼:
1.2
메소드의 상세

add

public void add(Area  rhs)
지정된 Area 의 형상을 이 Area 의 형상에 추가합니다. 이 Area 로 얻을 수 있는 형상에는, 양쪽 모두의 형상의 결합 부분, 또는 이 Area 나 지정된 Area 의 어딘가에 수라고 모든 영역이 포함됩니다.
     // Example:
     Area a1 = new Area([triangle 0,0 => 8,0 => 0,8]);
     Area a2 = new Area([triangle 0,0 => 8,0 => 8,8]);
     a1.add(a2);

        a1(before)     +         a2         =     a1(after)

     ################     ################     ################
     ##############         ##############     ################
     ############             ############     ################
     ##########                 ##########     ################
     ########                     ########     ################
     ######                         ######     ######    ######
     ####                             ####     ####        ####
     ##                                 ##     ##            ##
 

파라미터:
rhs - 현재의 형상에 추가된다 Area
예외:
NullPointerException - rhs 가 null 의 경우
도입된 버젼:
1.2

subtract

public void subtract(Area  rhs)
지정된 Area 의 형상을 이 Area 의 형상으로부터 제거합니다. 이 Area 로 얻을 수 있는 형상에는, 이 Area 에만 들어가고 있어, 지정된 Area 에는 들어가지 않은 영역이 포함됩니다.
     // Example:
     Area a1 = new Area([triangle 0,0 => 8,0 => 0,8]);
     Area a2 = new Area([triangle 0,0 => 8,0 => 8,8]);
     a1.subtract(a2);

        a1(before)     -         a2         =     a1(after)

     ################     ################
     ##############         ##############     ##
     ############             ############     ####
     ##########                 ##########     ######
     ########                     ########     ########
     ######                         ######     ######
     ####                             ####     ####
     ##                                 ##     ##
 

파라미터:
rhs - 현재의 형상으로부터 공제된다 Area
예외:
NullPointerException - rhs 가 null 의 경우
도입된 버젼:
1.2

intersect

public void intersect(Area  rhs)
Area 의 형상을, 현재의 형상과 지정된 Area 의 형상의 공통 부분으로 설정합니다. 이 Area 로 얻을 수 있는 형상에는, 이 Area 와 지정된 Area 의 양쪽 모두에 들어가고 있는 영역만이 포함됩니다.
     // Example:
     Area a1 = new Area([triangle 0,0 => 8,0 => 0,8]);
     Area a2 = new Area([triangle 0,0 => 8,0 => 8,8]);
     a1.intersect(a2);

      a1(before)   intersect     a2         =     a1(after)

     ################     ################     ################
     ##############         ##############       ############
     ############             ############         ########
     ##########                 ##########           ####
     ########                     ########
     ######                         ######
     ####                             ####
     ##                                 ##
 

파라미터:
rhs - 이 Area 와 교차시킨다 Area
예외:
NullPointerException - rhs 가 null 의 경우
도입된 버젼:
1.2

exclusiveOr

public void exclusiveOr(Area  rhs)
Area 의 형상을, 현재의 형상과 지정된 Area 의 형상의 결합 영역으로부터 그 공통 부분을 공제한 영역으로 설정합니다. 이 Area 로 얻을 수 있는 형상에는, 이 Area 또는 지정된 Area 의 어느 쪽인지 한편에만 들어가고 있는 영역이 포함됩니다. 양쪽 모두에 들어가고 있는 영역은 포함되지 않습니다.
     // Example:
     Area a1 = new Area([triangle 0,0 => 8,0 => 0,8]);
     Area a2 = new Area([triangle 0,0 => 8,0 => 8,8]);
     a1.exclusiveOr(a2);

        a1(before)    xor        a2         =     a1(after)

     ################     ################
     ##############         ##############     ##            ##
     ############             ############     ####        ####
     ##########                 ##########     ######    ######
     ########                     ########     ################
     ######                         ######     ######    ######
     ####                             ####     ####        ####
     ##                                 ##     ##            ##
 

파라미터:
rhs - 이 Area 와의 배타적 논리합을 요구한다 Area
예외:
NullPointerException - rhs 가 null 의 경우
도입된 버젼:
1.2

reset

public void reset()
Area 로부터 기하학적 도형을 모두 삭제해, 빈 상태(empty)의 영역에 되돌립니다.

도입된 버젼:
1.2

isEmpty

public boolean isEmpty()
Area 객체가 영역을 둘러쌀지 어떨지를 판정합니다.

반환값:
Area 객체가 빈 상태(empty)의 영역을 나타내는 경우는 true, 그렇지 않은 경우는 false
도입된 버젼:
1.2

isPolygonal

public boolean isPolygonal()
Area 가 완전하게, 옆이 직선의 다각형 기하학적 도형으로부터 구성되어 있는지 어떤지를 판정합니다.

반환값:
Area 의 기하학적 도형이 완전하게 선세그먼트(segment)로부터 구성되어 있는 경우는 true, 그렇지 않은 경우는 false
도입된 버젼:
1.2

isRectangular

public boolean isRectangular()
Area 의 형상이 구형인가 어떤가를 판정합니다.

반환값:
Area 의 기하학적 도형의 형상이 구형의 경우는 true, 그렇지 않은 경우는 false
도입된 버젼:
1.2

isSingular

public boolean isSingular()
Area 가 단일의 폐쇄 서브 패스로부터 구성되어 있는지 어떤지를 판정합니다. 이 메소드는, 패스가 서브 패스를 0 또는 1 개(살) 포함한 경우는 true, 패스가 2 개 이상의 서브 패스를 포함한 경우는 false 를 돌려줍니다. 서브 패스는, 패스에 나타나는 SEG_MOVETO 세그먼트(segment)의 수에 의해 셀 수 있습니다.

반환값:
Area 가 1 개의 기본 기하학적 도형으로부터 구성되어 있는 경우는 true, 그렇지 않은 경우는 false
도입된 버젼:
1.2

getBounds2D

public Rectangle2D  getBounds2D()
Area 를 완전하게 둘러싸는 고정밀도 바운딘그 Rectangle2D 를 돌려줍니다.  

Area 클래스는 그 Shape 로 할 수 있을 뿐(만큼) 딱 한 바운딩 박스를 돌려주려고 합니다. 바운딩 박스는 Shape 의 윤곽의 커브의 제어점을 포함하도록(듯이)는 패딩 되지 않고, 윤곽 자체의 실제의 기하학적 도형에 딱 맞는 크기가 됩니다.

정의:
인터페이스 Shape 내의 getBounds2D
반환값:
Area 의 바운딘그 Rectangle2D
도입된 버젼:
1.2
관련 항목:
Shape.getBounds()

getBounds

public Rectangle  getBounds()
Area 를 완전하게 둘러싸는 바운딘그 Rectangle 를 돌려줍니다.  

Area 클래스는 그 Shape 로 할 수 있을 뿐(만큼) 딱 한 바운딩 박스를 돌려주려고 합니다. 바운딩 박스는 Shape 의 윤곽의 커브의 제어점을 포함하도록(듯이)는 패딩 되지 않고, 윤곽 자체의 실제의 기하학적 도형에 딱 맞는 크기가 됩니다. 반환된 객체는 정수로 바운딩 박스를 나타내므로, 바운딩 박스는, Shape 의 기하학적 도형을 둘러싸는 가장 가까운 정수 좌표라고 하는 레벨에서의 일치가 됩니다.

정의:
인터페이스 Shape 내의 getBounds
반환값:
Area 의 바운딘그 Rectangle
도입된 버젼:
1.2
관련 항목:
Shape.getBounds2D()

clone

public Object  clone()
Area 객체와 완전히 같은 카피를 돌려줍니다.

오버라이드(override):
클래스 Object 내의 clone
반환값:
작성된 복제 객체
도입된 버젼:
1.2
관련 항목:
Cloneable

equals

public boolean equals(Area  other)
2 개의 Area 객체의 기하학적 도형이 동일한지 어떤지를 판정합니다. 인수가 null 의 경우, 이 메소드는 false 를 돌려줍니다.

파라미터:
other - 이 Area 라고 비교된다 Area
반환값:
2 개의 기하학적 도형이 동일한 경우는 true, 그렇지 않은 경우는 false
도입된 버젼:
1.2

transform

public void transform(AffineTransform  t)
Area 의 기하학적 도형을, 지정된 AffineTransform 를 사용해 변환합니다. 기하학적 도형이 적절히 변환되어 이것에 의해, 이 객체에 의해 정의되고 있는 닫은 영역이 영구적으로 변경됩니다.

파라미터:
t - 영역을 변환하는데 사용하는 변환
예외:
NullPointerException - t 가 null 의 경우
도입된 버젼:
1.2

createTransformedArea

public Area  createTransformedArea(AffineTransform  t)
지정된 AffineTransform 에 의해 변환된 이 Area 와 같은 기하학적 도형을 포함한, 새로운 Area 객체를 작성합니다. 이 Area 객체는 변화하지 않습니다.

파라미터:
t - 새로운 Area 의 변환에 사용하는, 지정된 AffineTransform
반환값:
변환된 기하학적 도형을 나타내는 새로운 Area 객체
예외:
NullPointerException - t 가 null 의 경우
도입된 버젼:
1.2

contains

public boolean contains(double x,
                        double y)
지정된 좌표가 Shape 의 경계내에 있을지 어떨지를 판정합니다.

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

contains

public boolean contains(Point2D  p)
지정된 Point2DShape 의 경계내에 있을지 어떨지를 판정합니다.

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

contains

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

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

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

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

contains

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

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

intersects

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

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

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

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

intersects

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

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

getPathIterator

public PathIterator  getPathIterator(AffineTransform  at)
Area 객체의 윤곽에 사용하는 PathIterator 를 작성합니다. 이 Area 객체는 변화하지 않습니다.

정의:
인터페이스 Shape 내의 getPathIterator
파라미터:
at - 반복 처리로 돌려주어질 때 좌표에 적용된다 옵션의 AffineTransform, 변환되어 있지 않은 좌표가 필요한 경우는 null
반환값:
Area 의 윤곽의 기하학적 도형을 한 번에 1 세그먼트(segment)씩 돌려주는 PathIterator 객체
도입된 버젼:
1.2

getPathIterator

public PathIterator  getPathIterator(AffineTransform  at,
                                    double flatness)
Area 객체의 평탄화한 윤곽을 위한 PathIterator 를 작성합니다. SEG_MOVETO, SEG_LINETO, SEG_CLOSE 의 3 종류의 점에 의해 표현되는 곡선상이 아닌 패스 세그먼트(segment)만이, 반복자에 의해 돌려주어집니다. 이 Area 객체는 변화하지 않습니다.

정의:
인터페이스 Shape 내의 getPathIterator
파라미터:
at - 반복 처리로 돌려주어질 때 좌표에 적용된다 옵션의 AffineTransform. 변환되어 있지 않은 좌표가 필요한 경우는 null
flatness - 분할된 곡선이 종점을 묶는 직선에 의해 치환되기 전에, 지정된 곡선의 제어점이 공선으로부터 빗나갈 수 있는 최대 거리
반환값:
Area 의 윤곽의 기하학적 도형을 한 번에 1 세그먼트(segment)씩 돌려주는 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 도 참조해 주세요.