Similar to the Union operation, the intersection operation was fundamentally used in set theory. As the name suggests, this operation is defined as the intersection of two different sets into one. Hence, the common elements from two or more sets are retrieved; ignoring duplicate elements. This concept is then adopted by various techniques in computer programming.
For instance, it is also used in programming languages like C, C++, Java, Python etc. as an operator or a method. Similarly, JavaFX also provides intersection operation on 2D shapes.
Intersection Operation in JavaFX
JavaFX allows you to perform intersection operation on 2D shapes, where, the areas of two or more shapes are intersected together and the common area of these shapes is obtained as a result. Thus, this operation takes two or more shapes as inputs and returns the intersection area between them as shown below.

You can perform an intersection operation on the shapes using the method named intersect(). Since this is a static method, you should call it using the class name (Shape or its subclasses) as shown below.
Shape shape =Shape.intersect(circle1, circle2);
Following is an example of the intersection operation. In here, we are drawing two circles and performing a intersection operation on them. Save this code in a file with the name IntersectionExample.java
Example
importjavafx.application.Application;importjavafx.scene.Group;importjavafx.scene.Scene;importjavafx.scene.paint.Color;importjavafx.stage.Stage;importjavafx.scene.shape.Circle;importjavafx.scene.shape.Shape;publicclassIntersectionExampleextendsApplication{@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 intersection operation on the circle Shape shape =Shape.intersect(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("Intersection 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 IntersectionExample.java
java --module-path %PATH_TO_FX%--add-modules javafx.controls IntersectionExample
Output
On executing, the above program generates a JavaFX window displaying the following output −

Example
Now, let us try to perform intersection operation on two elliptical shapes (to retrieve the common area between them). Save this file under the name EllipseIntersectionOperation.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;publicclassEllipseIntersectionOperationextendsApplication{@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.intersect(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("Intersection 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 EllipseIntersectionOperation.java
java --module-path %PATH_TO_FX%--add-modules javafx.controls EllipseIntersectionOperation
Output
On executing, the above program generates a JavaFX window displaying the following output −

Leave a Reply