Shear斜切

  • 创建斜切Shear shear = new Shear(0.5, 0.5, 0, 0);

    斜切前不动点对角线的组件局部坐标

    $x_1 = 200, y_1 = 100$

    斜切后不动点对角线的组件局部坐标

    $x_2 = pivotX + (x_1 - pivotX) + x * (y_1 - pivotY) = 250$

    $y_2 = pivotY + (y_1 - pivotY) + y * (x_1 - pivotX) = 200$

  • 设置斜切button2.getTransforms().add(shear);

  • 获取宽高

      // 输出原始组件的宽高  
      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());  
      // 输出边框坐标  
      System.out.printf("右下角边框相对于自身坐标为(%.2f,%.2f)\n", localToParent.getMaxX() - localToParent.getMinX(), localToParent.getMaxY() - localToParent.getMinY());
    

    200.0
    100.0
    相对于父组件的坐标:(100.00,100.00)
    宽度:250.0
    高度:200.0
    右下角边框相对于自身坐标为(250.00,200.00)