JavaFX代码实现一条直线的摆动动画,绕着这条直线的始端点逆时针旋转0-90度,通过每一段时间改变转动的角度实现摆动
时间: 2023-07-16 22:13:10 浏览: 167
CircleAnimation:绕圈旋转(JavaFX动画)
5星 · 资源好评率100%
以下是JavaFX代码实现一条直线的摆动动画,绕着这条直线的始端点逆时针旋转0-90度,通过每一段时间改变转动的角度实现摆动的示例代码:
```java
import javafx.animation.Animation;
import javafx.animation.KeyFrame;
import javafx.animation.KeyValue;
import javafx.animation.Timeline;
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.layout.Pane;
import javafx.scene.shape.Line;
import javafx.stage.Stage;
import javafx.util.Duration;
public class LineSwingAnimation extends Application {
private final Line line = new Line(50, 50, 150, 50); // 创建一条直线
@Override
public void start(Stage primaryStage) {
Pane root = new Pane();
root.getChildren().add(line);
Timeline timeline = new Timeline( // 创建动画时间轴
new KeyFrame(Duration.ZERO, new KeyValue(line.rotateProperty(), 0)), // 初始状态,角度为0
new KeyFrame(Duration.seconds(1), new KeyValue(line.rotateProperty(), -90)) // 动画结束状态,角度为-90
);
timeline.setAutoReverse(true); // 设置自动反向播放动画
timeline.setCycleCount(Animation.INDEFINITE); // 设置循环播放动画
timeline.play(); // 播放动画
Scene scene = new Scene(root, 200, 100);
primaryStage.setScene(scene);
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}
```
在上述代码中,我们首先创建了一条直线,并将其添加到了一个 Pane 容器中。接着,我们创建了一个 Timeline 对象,并通过 KeyFrame 和 KeyValue 对象设置了动画的起始状态和结束状态。其中,我们将直线的 rotateProperty() 属性绑定到了 KeyValue 对象中,以实现直线围绕其始端点旋转的效果。我们将动画设置为自动反向播放,并将其循环播放。最后,我们将 Pane 容器添加到了场景中,并将场景设置为舞台的场景,并显示舞台。运行代码后,我们可以看到一条直线在窗口中摆动,并围绕其始端点逆时针旋转0-90度。
阅读全文