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 窗口,如下所示。