GradientPaint 클래스

GradientPaint 클래스

GradientPaint 클래스는 Shape를 선형 색상 그라데이션 패턴으로 채우는 방법을 제공해요. 사용자 공간에서 Color C1을 가진 Point P1Color C2를 가진 Point P2를 지정하면, P1·P2 연결선 위의 색상은 C1에서 C2로 비례해서 변해요.

출처: Java API Reference

본문

연장된 P1·P2 연결선 위에 있지 않은 임의의 점 P는, P를 연장된 P1·P2 연결선에 수직으로 투영한 점 P'의 색상을 가져요.

public class GradientPaint
extends Object
implements Paint

두 가지 그라데이션 방식

연장된 선에서 P1·P2 세그먼트 바깥의 점은 두 가지 방식 중 하나로 색칠돼요.

  • cyclic(순환) — 그라데이션이 순환하면, 연장된 P1·P2 연결선 위의 점은 색상 C1C2 사이를 앞뒤로 반복해요.
  • acyclic(비순환) — 그라데이션이 비순환이면, 세그먼트의 P1 쪽 점은 일정한 Color C1을, P2 쪽 점은 일정한 Color C2를 가져요.

주요 생성자

  • GradientPaint(float x1, float y1, Color color1, float x2, float y2, Color color2) — 비순환 그라데이션 페인트를 만들어요.
  • GradientPaint(float x1, float y1, Color color1, float x2, float y2, Color color2, boolean cyclic) — 순환 여부를 지정해 만들어요.
  • GradientPaint(Point2D pt1, Color color1, Point2D pt2, Color color2)Point2D로 지정해요.
  • GradientPaint(Point2D pt1, Color color1, Point2D pt2, Color color2, boolean cyclic) — 순환 여부를 지정하는 Point2D 버전이에요.

주요 메서드

  • getPoint1() / getPoint2() — 그라데이션의 두 기준점을 반환해요.
  • getColor1() / getColor2() — 두 색상을 반환해요.
  • isCyclic() — 순환 여부를 반환해요.

사용 예

Graphics2D g2d = ...;
GradientPaint gp = new GradientPaint(0, 0, Color.RED, 100, 100, Color.BLUE);
g2d.setPaint(gp);
g2d.fill(rect);

setPaint로 설정하면 이후 그리는 도형이 선형 그라데이션으로 채워져요.

더 알아보기