Subtraction Operation

As the name suggests, the subtraction operation will subtract the elements of a set from another set. Most people are generally confused between the intersection operation, the two operations completely differ with respect to their operations. While intersection operation retrieves the common elements between two sets, the subtraction operation finds the common elements between two sets and removes them from the first set. If there are elements in second set that are not present in the first set, they are ignored.

Like other operations, the subtraction operation is also adopted in computer programming. It is available as difference operator in few programming languages; but in JavaFX, this operation can be used on 2D shapes.

Subtraction Operation in JavaFX

In JavaFX, the subtraction operation works with the area covered by two or more 2D shapes. It eliminates the area of the second shape from the area of the first shape. If the areas of these two shapes are fully exclusive, the area of first shape is retained as the result. Technically, this operation takes two or more shapes as an input. Then, it returns the area of the first shape excluding the area overlapped by the second one as shown below.

Subtraction Operation

You can perform the Subtraction Operation on the shapes using the method named subtract(). 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);

Following is an example of the Subtraction Operation. In here, we are drawing two circles and performing a subtraction operation on them.

Save this code in a file with name SubtractionExample.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;publicclassSubtractionExampleextendsApplication{@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 subtraction operation on the circle Shape shape =Shape.subtract(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("Subtraction 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 SubtractionExample.java 
java --module-path %PATH_TO_FX%--add-modules javafx.controls SubtractionExample

Output

On executing, the above program generates a JavaFX window displaying the following output −

Subtraction Operation Output

Example

Now, let us try to perform subtraction operation on two ellipses where we will subtract the area of second ellipse from the first ellipse. Save this file under the name EllipseSubtractionOperation.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;publicclassEllipseSubtractionOperationextendsApplication{@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.subtract(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("Subtraction 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 EllipseSubtractionOperation.java 
java --module-path %PATH_TO_FX%--add-modules javafx.controls EllipseSubtractionOperation

Output

On executing, the above program generates a JavaFX window displaying the following output −

Subtraction Operation Ellipse

Comments

Leave a Reply

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