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

JavaFX 2D 도형 Union(합집합) 연산 완벽 가이드

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

JavaFX 2D 도형 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);
   }
}

실행 결과

위 코드를 실행하면 세 개의 원이 서로 겹쳐진 영역까지 포함하여 하나의 빨간색 통합 도형으로 표시되는 것을 확인할 수 있습니다.

JavaFX 2D 도형 Union(합집합) 연산 완벽 가이드