Computer >> 컴퓨터 >  >> 프로그래밍 >> Java

JavaFX로 타원(Ellipse) 그리는 방법 완벽 정리

타원(ellipse)은 중심점으로부터 일정한 거리에 있는 점들이 이루는 닫힌 곡선 도형입니다. JavaFX에서 타원은 javafx.scene.shape.Ellipse 클래스로 표현되며, 이 클래스는 타원의 위치와 크기를 결정하는 네 가지 핵심 속성을 제공합니다.

Ellipse 클래스의 주요 속성

  • centerX – 타원 중심의 X 좌표를 나타냅니다. setCenterX() 메서드로 값을 설정할 수 있습니다.
  • centerY – 타원 중심의 Y 좌표를 나타냅니다. setCenterY() 메서드로 값을 설정할 수 있습니다.
  • radiusX – 타원의 가로 반지름(픽셀 단위)을 나타냅니다. setRadiusX() 메서드로 값을 설정할 수 있습니다.
  • radiusY – 타원의 세로 반지름(픽셀 단위)을 나타냅니다. setRadiusY() 메서드로 값을 설정할 수 있습니다.

타원 생성 절차

JavaFX에서 타원을 화면에 그리려면 다음 세 단계를 따르면 됩니다.

  1. Ellipse 클래스의 인스턴스 생성 – 기본 생성자 또는 매개변수가 있는 생성자를 사용합니다.
  2. 속성 값 설정 – setter 메서드를 호출하거나, 생성자에 인자를 직접 전달하여 위치와 크기를 지정합니다.
  3. Group 객체에 노드 추가 – 생성된 타원(도형 노드)을 Group에 포함시켜 Scene에 표시합니다.

예제 코드

아래 예제는 서로 다른 크기와 색상을 가진 두 개의 타원을 하나의 Scene에 그리는 전체 코드입니다.

import javafx.application.Application;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.paint.Color;
import javafx.stage.Stage;
import javafx.scene.shape.Ellipse;

public class DrawingEllipse extends Application {
   public void start(Stage stage) {
      // 첫 번째 타원 그리기
      Ellipse ellipse1 = new Ellipse();
      // 타원의 속성 설정
      ellipse1.setCenterX(200.0);
      ellipse1.setCenterY(150.0);
      ellipse1.setRadiusX(100);
      ellipse1.setRadiusY(50);
      // 기타 스타일 속성 설정
      ellipse1.setFill(Color.DARKCYAN);
      ellipse1.setStrokeWidth(8.0);
      ellipse1.setStroke(Color.DARKSLATEGREY);

      // 두 번째 타원 그리기
      Ellipse ellipse2 = new Ellipse();
      // 타원의 속성 설정
      ellipse2.setCenterX(450.0);
      ellipse2.setCenterY(150.0);
      ellipse2.setRadiusX(35);
      ellipse2.setRadiusY(100);
      // 기타 스타일 속성 설정
      ellipse2.setFill(Color.CHOCOLATE);
      ellipse2.setStrokeWidth(8.0);
      ellipse2.setStroke(Color.BROWN);

      // Scene 구성
      Group root = new Group(ellipse1, ellipse2);
      Scene scene = new Scene(root, 595, 300, Color.BEIGE);
      stage.setTitle("Drawing an Ellipse");
      stage.setScene(scene);
      stage.show();
   }
   public static void main(String args[]){
      launch(args);
   }
}

실행 결과

코드를 실행하면 가로로 긴 청록색(DARKCYAN) 타원과 세로로 긴 초콜릿색(CHOCOLATE) 타원이 베이지색 배경 위에 함께 표시됩니다. 각 타원에는 굵기 8px의 테두리 선이 적용되어 도형의 윤곽이 뚜렷하게 드러납니다.

이처럼 Ellipse 클래스의 네 가지 속성만 조절하면 원형에 가까운 타원부터 납작하거나 길쭉한 다양한 형태의 타원을 자유롭게 그릴 수 있습니다.