Intersection Operation

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.

Intersection Operation

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 −

Intersection Operation 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 −

Intersection Operation Ellipse

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *