JavaFX - 剪切变换
使对象形状倾斜的变换称为剪切变换。有两种剪切变换:X 剪切 和 Y 剪切。一种会移动 X 坐标值,另一种会移动 Y 坐标值。但是,在这两种情况下,只有一个坐标会改变其坐标,而另一个坐标会保留其值。剪切也称为倾斜。
示例
以下是演示 JavaFX 中剪切的程序。在这里,我们在同一位置创建 2 个多边形(节点),尺寸相同,但颜色不同(蓝色和透明)。我们还对透明多边形应用了剪切。
将此代码保存在名为 ShearingExample.java 的文件中。
import javafx.application.Application;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.paint.Color;
import javafx.scene.shape.Polygon;
import javafx.scene.transform.Shear;
import javafx.stage.Stage;
public class ShearingExample extends Application {
@Override
public void start(Stage stage) {
Polygon hexagon1 = new Polygon();
//向六边形添加坐标
hexagon1.getPoints().addAll(new Double[]{
200.0, 50.0,
400.0, 50.0,
450.0, 150.0,
400.0, 250.0,
200.0, 250.0,
150.0, 150.0,
});
//设置六边形的填充颜色
hexagon1.setFill(Color.BLUE);
hexagon1.setStroke(Color.BLACK);
Polygon hexagon2 = new Polygon();
//向六边形添加坐标
hexagon2.getPoints().addAll(new Double[]{
200.0, 50.0,
400.0, 50.0,
450.0, 150.0,
400.0, 250.0,
200.0, 250.0,
150.0, 150.0,
});
//设置六边形的填充颜色
hexagon2.setFill(Color.TRANSPARENT);
hexagon2.setStroke(Color.BLACK);
//创建剪切变换
Shear shear = new Shear();
//设置枢轴点
sher.setPivotX(200);
sher.setPivotY(250);
//设置剪切的尺寸
shear.setX(0.5);
shear.setY(0.0);
//将变换添加到多边形
hexagon2.getTransforms().addAll(shear);
//创建一个 Group 对象
Group root = new Group(hexagon1, hexagon2);
//创建一个场景对象
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 ShearingExample.java java ShearingExample
执行时,上述程序将生成一个 JavaFX 窗口,如下所示。

javafx_transformations.html