Shape — 기하 도형 인터페이스

Shape — 기하 도형 인터페이스

Shape 인터페이스는 일종의 기하 도형을 나타내는 객체에 대한 정의를 제공해요.

출처: Java API Reference

본문

public interface Shape

ShapePathIterator 객체로 설명되는데, 이 객체는 도형의 윤곽(outline)과 도형 윤곽이 2D 평면을 내부·외부 점으로 나누는 방법을 결정하는 규칙을 표현할 수 있어요. 각 Shape 객체는 기하의 경계 상자를 얻고, 점이나 사각형이 도형 내부에 부분 또는 전체로 놓이는지 판정하며, 도형 윤곽의 궤적 경로를 설명하는 PathIterator를 얻는 콜백을 제공해요.

내부성(in insideness) 정의

점이 Shape 내부에 있다고 간주되는 경우는 다음과 같아요.

  • 그 점이 Shape 경계 안에 완전히 놓이거나,
  • 그 점이 Shape 경계 위에 있을 때,
  • 그리고 이중 해석을 해결해야 하는 경우 경계에서 PathIterator의 채우기 규칙(fill rule)에 따라 결정돼요.

주요 메서드

  • getBounds() — 이 Shape를 완전히 둘러싸는 정수 Rectangle을 반환해요.
  • getBounds2D() — 더 높은 정밀도의, 더 정확한 경계 상자를 반환해요.
  • contains(double x, double y) — 지정한 좌표가 Shape 경계 안에 있는지 검사해요.
  • intersects(double x, double y, double w, double h) — 내부가 지정한 사각형과 교차하는지 검사해요.
  • getPathIterator(AffineTransform at) — 이 Shape의 경로를 설명하는 PathIterator를 반환해요.

Rectangle, RoundRectangle2D, Ellipse2D, Polygon, Area 등 많은 클래스가 이 인터페이스를 구현해요.

더 알아보기