此类包含五个属性-
的角属性(双)指定旋转角度。您可以使用setAngle()方法将值设置为此属性。
的轴属性(三维点)指定旋转轴线。您可以使用setAxis()方法将值设置为此属性。
pivotX属性(双)指定枢轴点的x坐标。您可以使用setPivotX()方法将值设置为此属性。
pivotY属性(双)指定枢轴点的y坐标。您可以使用setPivotY()方法将值设置为此属性。
pivotZ属性(双)指定枢转点的z坐标。您可以使用setPivotZ()方法将值设置为此属性。
JavaFX中的每个节点都包含一个可观察的列表,以保存要应用于节点上的所有转换。您可以使用getTransforms()方法获取此列表。
在JavaFX中旋转节点-
实例化Rotate类。
使用setter方法设置角度和枢轴点。
使用getTransforms()
方法从节点(要旋转的节点)获取变换列表。
向其添加上面创建的旋转对象。
将节点添加到场景。
下面的JavaFX示例演示了旋转变换。它包含一个2D几何形状和一个滑块,代表角度值。如果移动滑块,则对象将被旋转。
import javafx.application.Application; import javafx.beans.value.ChangeListener; import javafx.beans.value.ObservableValue; import javafx.geometry.Orientation; import javafx.scene.Scene; import javafx.scene.control.Label; import javafx.scene.control.Slider; import javafx.scene.layout.BorderPane; import javafx.scene.layout.VBox; import javafx.scene.paint.Color; import javafx.scene.shape.Rectangle; import javafx.scene.transform.Rotate; import javafx.stage.Stage; public class RotationExample extends Application { public void start(Stage stage) { //创建一个矩形 Rectangle rect = new Rectangle(300, 100, 75, 75); rect.setFill(Color.BLUEVIOLET); rect.setStrokeWidth(5.0); rect.setStroke(Color.BROWN); //设置滑块 Slider slider = new Slider(0, 360, 0); slider.setShowTickLabels(true); slider.setShowTickMarks(true); slider.setMajorTickUnit(90); slider.setBlockIncrement(10); slider.setOrientation(Orientation.VERTICAL); slider.setLayoutX(2); slider.setLayoutY(195); //创建旋转变换 Rotate rotate = new Rotate(); //设置旋转的枢轴点 rotate.setPivotX(300); rotate.setPivotY(100); //将转换添加到矩形 rect.getTransforms().addAll(rotate); //将转换链接到滑块 slider.valueProperty().addListener(new ChangeListener<Number>() { public void changed(ObservableValue <?extends Number>observable, Number oldValue, Number newValue){ //设置旋转角度 rotate.setAngle((double) newValue); } }); //将变换添加到圆中 rect.getTransforms().add(rotate); //创建窗格 BorderPane pane = new BorderPane(); pane.setRight(new VBox(new Label("Rotate"), slider)); pane.setCenter(rect); //准备场景 Scene scene = new Scene(pane, 600, 300); stage.setTitle("Rotation Example"); stage.setScene(scene); stage.show(); } public static void main(String args[]){ launch(args); } }
输出结果