2차 곡선(Quadratic Curve)이란?
2차 곡선은 XY 평면 위에서 정의되는 2차(degree 2) 베지어 매개변수 곡선입니다. 시작점과 끝점, 그리고 하나의 조절점(control point)을 이용해 부드럽게 휘어진 곡선을 표현할 수 있습니다.
JavaFX에서는 이러한 2차 곡선을 javafx.scene.shape.QuadCurve 클래스로 나타냅니다. CubicCurve와 유사하지만, CubicCurve가 조절점 2개를 사용하는 것과 달리 QuadCurve는 조절점 1개만을 사용한다는 점이 다릅니다.
QuadCurve 클래스의 주요 속성
QuadCurve 클래스는 총 6개의 핵심 속성을 가지고 있으며, 각 속성은 대응하는 setter 메서드로 값을 설정할 수 있습니다.
startX − 곡선 시작점의 x 좌표를 나타냅니다.
setStartX()메서드로 값을 설정합니다.startY − 곡선 시작점의 y 좌표를 나타냅니다.
setStartY()메서드로 값을 설정합니다.controlX − 곡선의 모양을 결정하는 조절점의 x 좌표를 나타냅니다.
setControlX()메서드로 값을 설정합니다.controlY − 조절점의 y 좌표를 나타냅니다.
setControlY()메서드로 값을 설정합니다.endX − 곡선 끝점의 x 좌표를 나타냅니다.
setEndX()메서드로 값을 설정합니다.endY − 곡선 끝점의 y 좌표를 나타냅니다.
setEndY()메서드로 값을 설정합니다.
2차 곡선을 그리는 절차
JavaFX로 2차 곡선을 화면에 그리려면 다음 세 단계를 따르면 됩니다.
1단계: QuadCurve 클래스의 인스턴스를 생성합니다.
2단계: setter 메서드를 사용하거나, 생성자에 인자를 직접 전달하여 필요한 속성 값들을 설정합니다.
3단계: 생성된 노드(도형)를 Group 객체에 추가하여 장면(scene)에 표시합니다.
예제 코드
아래 예제는 시작점 (75, 75), 조절점 (250, 250), 끝점 (500, 260)을 가지는 2차 곡선을 그리고, 채우기 색상과 선 두께, 윤곽선 색상까지 함께 지정하는 전체 코드입니다.
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.QuadCurve;
public class DrawingQuadCurve extends Application {
@Override
public void start(Stage stage) {
// 2차 곡선 그리기
QuadCurve quadraticCurve = new QuadCurve();
// 곡선의 좌표 속성 설정
quadraticCurve.setStartX(75.0f);
quadraticCurve.setStartY(75.0f);
quadraticCurve.setControlX(250.0f);
quadraticCurve.setControlY(250.0f);
quadraticCurve.setEndX(500.0f);
quadraticCurve.setEndY(260.0f);
// 기타 스타일 속성 설정
quadraticCurve.setFill(Color.CHOCOLATE);
quadraticCurve.setStrokeWidth(8.0);
quadraticCurve.setStroke(Color.BROWN);
// Scene 객체 설정
Group root = new Group(quadraticCurve);
Scene scene = new Scene(root, 595, 300);
stage.setTitle("Drawing a quadratic curve");
stage.setScene(scene);
stage.show();
}
public static void main(String args[]) {
launch(args);
}
}
실행 결과
위 코드를 실행하면 초콜릿색으로 채워지고 갈색 윤곽선이 둘러진 2차 곡선이 창에 출력됩니다. 조절점의 위치를 변경하면 곡선의 휘어짐 정도와 방향이 달라지므로, 다양한 좌표 값을 실험해 보면서 원하는 형태의 곡선을 만들어 보세요.
