f you look at it mathematically, the Union operation was fundamentally used in the concept of set theory. This operation is defined as the combination of two different sets into one. In here, all the elements of one set and merged within another set, regardless of any duplicities. This concept is then adopted by various techniques in computer programming.
For instance, union operation when performed in SQL combines two or more result-sets into one common result set. It is also used in programming languages like C, C++, Java, Python etc. as an operator or a method.
Similarly, JavaFX also provides union operation on 2D shapes.
Union Operation in JavaFX
JavaFX provides union operation which can be performed on 2D shapes. In here, the areas of two or more shapes are combined together to form a bigger and a more complex shape. Thus, the union operation takes two or more shapes as inputs and returns the combined area occupied by them as shown below.

You can perform union operation on the shapes using the method called union(). Since this is a static method, you should call it using the class name (Shape or its subclasses) as shown below.
Shape shape =Shape.subtract(circle1, circle2);
Example
Following is an example of the union operation. In here, we are drawing two circles and performing a union operation on them. Save this code in a file with the name unionExample.java.
importjavafx.application.Application;importjavafx.scene.Group;importjavafx.scene.Scene;importjavafx.scene.paint.Color;importjavafx.stage.Stage;importjavafx.scene.shape.Circle;importjavafx.scene.shape.Shape;publicclassUnionExampleextendsApplication{@Overridepublicvoidstart(Stage stage){//Drawing Circle1 Circle circle1 =newCircle();//Setting the position of the circle
circle1.setCenterX(250.0f);
circle1.setCenterY(135.0f);//Setting the radius of the circle
circle1.setRadius(100.0f);//Setting the color of the circle
circle1.setFill(Color.DARKSLATEBLUE);//Drawing Circle2 Circle circle2 =newCircle();//Setting the position of the circle
circle2.setCenterX(350.0f);
circle2.setCenterY(135.0f);//Setting the radius of the circle
circle2.setRadius(100.0f);//Setting the color of the circle
circle2.setFill(Color.BLUE);//Performing union operation on the circle Shape shape =Shape.union(circle1, circle2);//Setting the fill color to the result
shape.setFill(Color.DARKSLATEBLUE);//Creating a Group object Group root =newGroup(shape);//Creating a scene object Scene scene =newScene(root,600,300);//Setting title to the Stage
stage.setTitle("Union Example");//Adding scene to the stage
stage.setScene(scene);//Displaying the contents of the stage
stage.show();}publicstaticvoidmain(String args[]){launch(args);}}
Compile and execute the saved java file from the command prompt using the following commands.
javac --module-path %PATH_TO_FX%--add-modules javafx.controls UnionExample.java
java --module-path %PATH_TO_FX%--add-modules javafx.controls UnionExample
Output
On executing, the above program generates a JavaFX window displaying the following output −

Example
Let us try to perform union operation on shapes other than a circle, like an ellipse. Save this file under the name EllipseUnionOperation.java.
importjavafx.application.Application;importjavafx.scene.Group;importjavafx.scene.Scene;importjavafx.scene.paint.Color;importjavafx.stage.Stage;importjavafx.scene.shape.Ellipse;importjavafx.scene.shape.Shape;publicclassEllipseUnionOperationextendsApplication{@Overridepublicvoidstart(Stage stage){Ellipse ellipse1 =newEllipse();
ellipse1.setCenterX(250.0f);
ellipse1.setCenterY(100.0f);
ellipse1.setRadiusX(150.0f);
ellipse1.setRadiusY(75.0f);
ellipse1.setFill(Color.BLUE);Ellipse ellipse2 =newEllipse();
ellipse2.setCenterX(350.0f);
ellipse2.setCenterY(100.0f);
ellipse2.setRadiusX(150.0f);
ellipse2.setRadiusY(75.0f);
ellipse2.setFill(Color.RED);Shape shape =Shape.union(ellipse1, ellipse2);//Setting the fill color to the result
shape.setFill(Color.DARKSLATEBLUE);//Creating a Group object Group root =newGroup(shape);//Creating a scene object Scene scene =newScene(root,600,300);//Setting title to the Stage
stage.setTitle("Union Example");//Adding scene to the stage
stage.setScene(scene);//Displaying the contents of the stage
stage.show();}publicstaticvoidmain(String args[]){launch(args);}}
Compile and execute the saved java file from the command prompt using the following commands.
javac --module-path %PATH_TO_FX%--add-modules javafx.controls EllipseUnionOperation.java
java --module-path %PATH_TO_FX%--add-modules javafx.controls EllipseUnionOperation
Output
On executing, the above program generates a JavaFX window displaying the following output −

Leave a Reply