JavaFX - 旋转变换
在旋转中,我们将对象从其原点以特定角度 θ (theta) 旋转。从下图中,我们可以看到 点 P(X, Y) 位于水平 X 坐标的 角度 φ 处,与原点的距离为 r。
示例
以下是演示 JavaFX 中的旋转变换的程序。在这里,我们在同一位置创建 2 个矩形节点,它们具有相同的尺寸,但颜色不同(Blurywood 和 Blue)。我们还对具有 Blurywood 颜色的矩形应用旋转变换。
将此代码保存在名为 RotationExample.java 的文件中。
import javafx.application.Application; import javafx.scene.Group; import javafx.scene.Scene; import javafx.scene.paint.Color; import javafx.scene.shape.Rectangle; import javafx.scene.transform.Rotate; import javafx.stage.Stage; public class RotationExample extends Application { @Override public void start(Stage stage) { //绘制矩形 1 矩形 rectangle1 = new Rectangle(150, 75, 200, 150); rectangle1.setFill(Color.BLUE); rectangle1.setStroke(Color.BLACK); //绘制矩形 2 矩形 rectangle2 = new Rectangle(150, 75, 200, 150); //设置矩形的颜色 rectangle2.setFill(Color.BURLYWOOD); //设置矩形的描边颜色 rectangle2.setStroke(Color.BLACK); //创建旋转变换 Rotate rotate = new Rotate(); //设置旋转角度 rotate.setAngle(20); //设置旋转枢轴点 rotate.setPivotX(150); rotate.setPivotY(225); //将变换添加到 rectangle2 rectangle2.getTransforms().addAll(rotate); //创建一个 Group 对象 Group root = new Group(rectangle1, rectangle2); //创建一个场景对象 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 RotationExample.java java RotationExample
执行时,上述程序会生成一个 javaFx 窗口,如下所示。