JavaFX - Transformation de mise à l'échelle

Pour modifier la taille d'un objet, la transformation de mise à l'échelle est utilisée. Dans le processus de mise à l'échelle, vous développez ou compressez les dimensions de l'objet. La mise à l'échelle peut être obtenue en multipliant les coordonnées d'origine de l'objet par le facteur de mise à l'échelle pour obtenir le résultat souhaité.

Exemple

Voici le programme qui montre la mise à l'échelle dans JavaFX. Ici, nous créons 2 cercles (nœuds) au même endroit avec les mêmes dimensions, mais avec des couleurs différentes (Blurywood et Blue). Nous appliquons également une transformation d'échelle sur le cercle de couleur bleue.

Enregistrez ce code dans un fichier avec le nom ScalingExample.java.

import javafx.application.Application; 
import javafx.scene.Group; 
import javafx.scene.Scene; 
import javafx.scene.paint.Color; 
import javafx.scene.shape.Circle; 
import javafx.scene.transform.Scale; 
import javafx.stage.Stage; 
         
public class ScalingExample extends Application {  
   @Override 
   public void start(Stage stage) {      
      //Drawing Circle1 
      Circle circle1 = new Circle(300, 135, 50);   
      
      //Setting the color of the circle 
      circle1.setFill(Color.BLUE);        
      
      //Setting the stroke width of the circle 
      circle1.setStrokeWidth(20);       
       
      //Drawing Circle2 
      Circle circle2 = new Circle(300, 135, 50); 
      
      //Setting the color of the circle 
      circle2.setFill(Color.BURLYWOOD); 
      
      //Setting the stroke width of the circle 
      circle2.setStrokeWidth(20);
      
      //Creating the scale transformation 
      Scale scale = new Scale(); 
      
      //Setting the dimensions for the transformation 
      scale.setX(1.5); 
      scale.setY(1.5); 
      
      //Setting the pivot point for the transformation 
      scale.setPivotX(300); 
      scale.setPivotY(135); 
       
      //Adding the scale transformation to circle1 
      circle1.getTransforms().addAll(scale); 
         
      //Creating a Group object  
      Group root = new Group(circle1, circle2); 
         
      //Creating a scene object 
      Scene scene = new Scene(root, 600, 300);  
      
      //Setting title to the Stage 
      stage.setTitle("Scaling transformation example"); 
          
      //Adding scene to the stage 
      stage.setScene(scene); 
         
      //Displaying the contents of the stage 
      stage.show(); 
   }      
   public static void main(String args[]){ 
      launch(args); 
   } 
}

Compilez et exécutez le fichier java enregistré à partir de l'invite de commande à l'aide des commandes suivantes.

javac ScalingExample.java 
java ScalingExample

Lors de l'exécution, le programme ci-dessus génère une fenêtre JavaFX comme indiqué ci-dessous.