JavaFX - 缩放变换

要更改对象的大小,可使用缩放变换。在缩放过程中,您可以扩展或压缩对象的尺寸。可以通过将对象的原始坐标乘以缩放因子来实现缩放,以获得所需的结果。

Scaling

示例

以下是演示 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) {
        //绘制圆1
        Circle circle1 = new Circle(300, 135, 50);
        
        //设置圆的颜色
        circle1.setFill(Color.BLUE);
        
        //设置圆的描边宽度
        circle1.setStrokeWidth(20);
        
        //绘制圆2
        Circle circle2 = new Circle(300, 135, 50);
        
        //设置圆的颜色
        circle2.setFill(Color.BURLYWOOD);
        
        //设置圆的描边宽度
        circle2.setStrokeWidth(20);
        
        //创建缩放变换
        Scale scale = new Scale();
        
        //设置变换的尺寸
        scale.setX(1.5);
        scale.setY(1.5);
        
        //设置变换的枢轴点
        scale.setPivotX(300);
        scale.setPivotY(135);
        
        //将缩放变换添加到 circle1
        circle1.getTransforms().addAll(scale);
        
        //创建一个 Group 对象
        Group root = new Group(circle1, circle2);
        
        //创建一个 scene 对象
        Scene scene = new Scene(root, 600, 300);
        
        //将标题设置为 Stage
        stage.setTitle("缩放变换示例");
        
        //将场景添加到舞台(Stage)
        stage.setScene(scene);
        
        //显示舞台(Stage)的内容
        stage.show();
   }     
   public static void main(String args[]){ 
      launch(args); 
   } 
} 

使用以下命令从命令提示符编译并执行保存的 java 文件。

javac ScalingExample.java 
java ScalingExample

执行时,上述程序会生成如下所示的 JavaFX 窗口。

Scaling Transformation

javafx_transformations.html