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

javafx_transformations.html