JavaFX - 缩放转换

  • 简述

    为了改变对象的大小,使用了缩放变换。在缩放过程中,您可以扩展或压缩对象的维度。缩放可以通过将对象的原始坐标乘以缩放因子来获得所需的结果。
    缩放
  • 例子

    以下是演示在 JavaFX 中缩放的程序。在这里,我们在同一位置创建了 2 个具有相同尺寸但颜色不同(Blurywood 和 Blue)的圆(节点)。我们还在蓝色圆圈上应用缩放变换。
    将此代码保存在名称为的文件中 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); 
       } 
    } 
    
    使用以下命令从命令提示符编译并执行保存的 java 文件。
    
    javac ScalingExample.java 
    java ScalingExample
    
    执行时,上述程序会生成一个 JavaFX 窗口,如下所示。
    缩放转换