Scale缩放

  • 创建缩放

将x轴长度缩小为原来的0.5,将y轴长度缩小为原来的0.5 ;缩放操作执行后左上角坐标为(pivotXx, pivotYy)

```java
Scale scale = new Scale(0.5, 0.5, 100, 100);
Scale scale1 = new Scale(2, 2, 100, 100);
```
  • xy缩放比例取倒数scale.createInverse()

  • 在该位移基础上再缩放,转换为point2D

    Point2D point2D = scale.transform(0.5, 0.5);  
    System.out.printf("point2D(%.2f,%.2f)\n", point2D.getX(), point2D.getY());
    

    point2D(50.25,50.25)

  • 多次进行缩放button2.getTransforms().addAll(scale,scale1)

  • 以原组件中心点向四周进行缩放,x轴,y轴各缩小0.5倍

    button2.setScaleX(0.5);  
    button2.setScaleY(0.8);
    
  • 获取宽高

    // 仅进行一次缩放操作
    Scale scale = new Scale(0.5, 0.5, 100, 100);
    button2.getTransforms().addAll(scale);
    button2.setOnAction(event -> {  
        // 输出原始组件的宽高  
        System.out.println(button2.getPrefWidth());  
        System.out.println(button2.getPrefHeight());  
        // 获取组件相对与父组件的位移量 ,输出的结果是变换后的
        System.out.printf("相对于父组件的坐标:(%.2f,%.2f)\n", button2.getLocalToParentTransform().getTx(), button2.getLocalToParentTransform().getTy());  
        Bounds bounds = button2.getLayoutBounds();  
        Bounds localToParent = button2.localToParent(bounds);  
        // 输出目视宽高  
        System.out.println("宽度:" + localToParent.getWidth());  
        System.out.println("高度:" + localToParent.getHeight());  
    });
    

    200.0 200.0 相对于父组件的坐标:(50.00,50.00) 宽度:100.0 高度:100.0