Animation 在JavaFX中沿自定义路径设置图像视图动画

Animation 在JavaFX中沿自定义路径设置图像视图动画,animation,javafx,path,Animation,Javafx,Path,我应该在JavaFX中为一个大学项目创建一个应用程序 应用程序允许画一条线和一个图像视图之后,必须遵循这条线。 我怎么能意识到这一点? 有人能告诉我,为了实现这一点,我必须实现哪些类吗 我搜索的最终结果是 提前非常感谢,我遇到了困难:(.您可以使用路径转换根据您绘制的线移动图像视图。这是一个代码示例 import javafx.animation.PathTransition; import javafx.application.Application; import javafx.scene.

我应该在JavaFX中为一个大学项目创建一个应用程序

应用程序允许画一条线和一个图像视图之后,必须遵循这条线。

我怎么能意识到这一点? 有人能告诉我,为了实现这一点,我必须实现哪些类吗

我搜索的最终结果是


提前非常感谢,我遇到了困难:(.

您可以使用
路径转换
根据您绘制的线移动图像视图。这是一个代码示例

import javafx.animation.PathTransition;
import javafx.application.Application;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.layout.StackPane;
import javafx.scene.paint.Color;
import javafx.scene.shape.LineTo;
import javafx.scene.shape.MoveTo;
import javafx.scene.shape.Path;
import javafx.scene.shape.Rectangle;
import javafx.stage.Stage;
import javafx.util.Duration;

public class PathTransitionDemo extends Application{
    @Override
    public void start(Stage primaryStage) throws Exception{
        Rectangle invisibleBorder = new Rectangle(600, 600);
        invisibleBorder.setFill(Color.TRANSPARENT);
        invisibleBorder.setLayoutX(-100);
        invisibleBorder.setLayoutY(-100);

        Rectangle rect = new Rectangle (0, 0, 100, 100);

        Path path = new Path();
        path.getElements().add(new MoveTo(0, 0));
        path.getElements().add(new LineTo(400, 0));
        path.getElements().add(new LineTo(400, 400));
        path.getElements().add(new LineTo(0, 400));
        path.getElements().add(new LineTo(0, 0));

        PathTransition pathTransition = new PathTransition();
        pathTransition.setDuration(Duration.millis(5000));
        pathTransition.setNode(rect);
        pathTransition.setPath(path);
        pathTransition.setOrientation(PathTransition.OrientationType.ORTHOGONAL_TO_TANGENT);
        pathTransition.setAutoReverse(true);

        Button play = new Button("Play");
        play.setLayoutX(200);
        play.setLayoutY(200);
        play.setOnMouseClicked(event -> pathTransition.play());

        Group container = new Group(invisibleBorder, rect, path, play);

        StackPane root = new StackPane(container);
        Scene scene = new Scene(root, 800, 800);
        primaryStage.setScene(scene);
        primaryStage.show();
    }
}

学习javafx中的动画教程,应用所学知识,当遇到困难时,回来演示不符合预期的内容。感谢您的回答,我将在这一天做一个简单的示例非常感谢您的示例。我将从这个示例开始实施应用程序。