CubicCurve2D 클래스

CubicCurve2D 클래스

CubicCurve2D 클래스는 (x,y) 좌표 공간에서 3차 매개변수 곡선 세그먼트를 정의해요. 이 클래스는 2D 3차 곡선 세그먼트를 저장하는 모든 객체의 추상 슈퍼클래스일 뿐이에요. 좌표의 실제 저장 표현은 하위 클래스에 맡겨져요.

출처: Java API Reference

본문

3차 베지어 곡선은 시작점, 두 개의 제어점, 끝점이라는 네 개의 점으로 정의돼요. 이 곡선은 부드러운 곡선을 만들기 위해 도형, 폰트 곡선, 애니메이션 경로 등에 널리 사용돼요.

public abstract class CubicCurve2D
extends Object
implements Shape, Cloneable

내부 클래스

  • CubicCurve2D.Float — 좌표를 float로 저장하는 구현
  • CubicCurve2D.Double — 좌표를 double로 저장하는 구현

주요 메서드

  • getX1() / getY1() — 시작점 좌표를 반환해요.
  • getCtrlX1() / getCtrlY1() — 첫 제어점 좌표를 반환해요.
  • getCtrlX2() / getCtrlY2() — 둘째 제어점 좌표를 반환해요.
  • getX2() / getY2() — 끝점 좌표를 반환해요.
  • setCurve(...) — 곡선을 설정하는 다양한 오버로드가 있어요.
  • getBounds2D() — 곡선을 감싸는 경계 사각형을 반환해요.
  • contains(...) — 히트 테스트.
  • getPathIterator(AffineTransform) — 경로 반복자.

사용 예

CubicCurve2D curve = new CubicCurve2D.Double();
curve.setCurve(x1, y1, ctrlx1, ctrly1, ctrlx2, ctrly2, x2, y2);
Graphics2D g2d = ...;
g2d.draw(curve);

제어점을 움직이면 곡선의 모양이 매끄럽게 변하기 때문에, 인터랙티브한 곡선 편집 도구에 많이 사용해요.

더 알아보기