Union(합집합) 연산은 두 개 이상의 도형을 입력으로 받아, 해당 도형들이 차지하는 영역을 모두 합친 결과를 반환하는 연산입니다. 겹쳐진 부분은 하나로 통합되어 마치 단일 도형처럼 표현됩니다.

union() 메서드란?
javafx.scene.shape.Shape 클래스가 제공하는 정적(static) 메서드인 union()은 두 개의 Shape 객체를 매개변수로 받으며, 두 객체에 대한 합집합 연산의 결과를 새로운 Shape 객체로 반환합니다.
세 개 이상의 도형을 합치고 싶다면, 먼저 두 도형을 union()으로 결합한 뒤 그 결과에 나머지 도형을 순차적으로 다시 union()으로 결합하면 됩니다.
예제 코드
다음 예제는 세 개의 원을 생성한 후, union() 메서드를 사용해 세 원을 하나의 도형으로 합치는 과정을 보여줍니다.
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.Circle;
import javafx.scene.shape.Shape;
public class JavaFXUnionExample extends Application {
public void start(Stage stage) {
//첫 번째 원 그리기
Circle circle1 = new Circle();
circle1.setCenterX(230.0f);
circle1.setCenterY(100.0f);
circle1.setRadius(75.0f);
circle1.setFill(Color.DARKRED);
//두 번째 원 그리기
Circle circle2 = new Circle();
circle2.setCenterX(280.0f);
circle2.setCenterY(170.0f);
circle2.setRadius(75.0f);
circle2.setFill(Color.DARKRED);
//세 번째 원 그리기
Circle circle3 = new Circle();
circle3.setCenterX(330.0f);
circle3.setCenterY(100.0f);
circle3.setRadius(75.0f);
circle3.setFill(Color.DARKRED);
//합집합(Union) 연산 수행
Shape union = Shape.union(circle1, circle2);
union = Shape.union(union, circle3);
union.setFill(Color.RED);
//스테이지 설정
Group root = new Group(circle1, circle2, circle3, union);
Scene scene = new Scene(root, 595, 300);
stage.setTitle("Union Operation");
stage.setScene(scene);
stage.show();
}
public static void main(String args[]){
launch(args);
}
}실행 결과
위 코드를 실행하면 세 개의 원이 서로 겹쳐진 영역까지 포함하여 하나의 빨간색 통합 도형으로 표시되는 것을 확인할 수 있습니다.
