타원(ellipse)은 중심점으로부터 일정한 거리에 있는 점들이 이루는 닫힌 곡선 도형입니다. JavaFX에서 타원은 javafx.scene.shape.Ellipse 클래스로 표현되며, 이 클래스는 타원의 위치와 크기를 결정하는 네 가지 핵심 속성을 제공합니다.
Ellipse 클래스의 주요 속성
- centerX – 타원 중심의 X 좌표를 나타냅니다. setCenterX() 메서드로 값을 설정할 수 있습니다.
- centerY – 타원 중심의 Y 좌표를 나타냅니다. setCenterY() 메서드로 값을 설정할 수 있습니다.
- radiusX – 타원의 가로 반지름(픽셀 단위)을 나타냅니다. setRadiusX() 메서드로 값을 설정할 수 있습니다.
- radiusY – 타원의 세로 반지름(픽셀 단위)을 나타냅니다. setRadiusY() 메서드로 값을 설정할 수 있습니다.
타원 생성 절차
JavaFX에서 타원을 화면에 그리려면 다음 세 단계를 따르면 됩니다.
- Ellipse 클래스의 인스턴스 생성 – 기본 생성자 또는 매개변수가 있는 생성자를 사용합니다.
- 속성 값 설정 – setter 메서드를 호출하거나, 생성자에 인자를 직접 전달하여 위치와 크기를 지정합니다.
- 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 클래스의 네 가지 속성만 조절하면 원형에 가까운 타원부터 납작하거나 길쭉한 다양한 형태의 타원을 자유롭게 그릴 수 있습니다.