📜  JavaFX 旋转(1)

📅  最后修改于: 2023-12-03 15:31:36.245000             🧑  作者: Mango

JavaFX 旋转

JavaFX 是一个基于 Java 应用程序的用户界面工具包,可以用于创建富客户端应用程序。在 JavaFX 中,可以通过旋转实现一些有趣的动画效果。

旋转基础

在 JavaFX 中,可以通过 Rotate 类来实现旋转效果。Rotate 类有四个属性:角度(angle)、旋转中心点的 X 轴坐标(pivotX)、旋转中心点的 Y 轴坐标(pivotY)和旋转中心点的 Z 轴坐标(pivotZ),这四个属性构成了旋转操作的基础。

Rotate rotate = new Rotate();
rotate.setAngle(30); // 旋转角度为 30 度
rotate.setPivotX(50); // 旋转中心点横坐标为 50
rotate.setPivotY(50); // 旋转中心点纵坐标为 50

另外,Rotate 类还有两个属性和一个方法,用于控制旋转操作的顺序和方向:

  • order 属性:旋转顺序(默认为轴-角-平面)
  • axis 属性:旋转轴(默认为 Z 轴)
  • setAngle(double angle) 方法:设置旋转角度(替代 angle 属性)
Rotate rotate = new Rotate(30, 50, 50);
rotate.setOrder(Rotate.Y_AXIS);
rotate.setAxis(new Point3D(1, 1, 0));
旋转动画

有了旋转基础,JavaFX 中可以用 RotateTransition 类来实现旋转动画。RotateTransition 类有三个属性:目标节点(node)、周期(duration)和旋转操作(byAngletoAngle)。

Node node = new Button("Hello, world!");
RotateTransition rotateTransition = new RotateTransition(Duration.seconds(2), node);
rotateTransition.setByAngle(360); // 旋转 360 度
rotateTransition.setCycleCount(Animation.INDEFINITE); // 重复播放
rotateTransition.setAutoReverse(true); // 反向播放
rotateTransition.play();
总结

JavaFX 可以通过 Rotate 类和 RotateTransition 类实现旋转效果。Rotate 类是旋转的基础,需要设置角度和旋转中心点等属性;RotateTransition 类是旋转的动画实现,需要设置目标节点、周期和旋转操作等属性。通过 JavaFX 实现旋转效果,可以为应用程序添加更加丰富的界面交互。