Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/345.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaFX:如何更改动画中多边形的点?_Java_Javafx_Javafx 8 - Fatal编程技术网

JavaFX:如何更改动画中多边形的点?

JavaFX:如何更改动画中多边形的点?,java,javafx,javafx-8,Java,Javafx,Javafx 8,我知道可以在动画中更改圆的位置,如下所示(另请参见): 但是也有可能(这意味着属性)更改动画中多边形的点吗 如果没有:我还需要使用JavaFX在动画中变形多边形吗?多边形中的点没有单独的属性,但是您可以使用LineTos、MoveTo和ClosePath的路径来分别设置多边形坐标的动画 示例: Pane pane = new Pane(); pane.setPrefSize(400, 400); MoveTo corner1 = new MoveTo(); LineTo corner2 = n

我知道可以在动画中更改圆的位置,如下所示(另请参见):

但是也有可能(这意味着
属性
)更改动画中多边形的点吗


如果没有:我还需要使用JavaFX在动画中变形多边形吗?

多边形中的点没有单独的属性,但是您可以使用
LineTo
s、
MoveTo
ClosePath
路径来分别设置多边形坐标的动画

示例:

Pane pane = new Pane();
pane.setPrefSize(400, 400);

MoveTo corner1 = new MoveTo();
LineTo corner2 = new LineTo();
LineTo corner3 = new LineTo();

Path path = new Path(corner1, corner2, corner3, new ClosePath());
pane.getChildren().add(path);

Timeline timeline = new Timeline(
        new KeyFrame(Duration.ZERO,
                new KeyValue(corner1.xProperty(), 200d),
                new KeyValue(corner1.yProperty(), 200d),
                new KeyValue(corner2.xProperty(), 200d),
                new KeyValue(corner2.yProperty(), 200d),
                new KeyValue(corner3.xProperty(), 200d),
                new KeyValue(corner3.yProperty(), 200d)),
        new KeyFrame(Duration.seconds(2),
                new KeyValue(corner1.xProperty(), 100d),
                new KeyValue(corner1.yProperty(), 100d),
                new KeyValue(corner2.xProperty(), 250d),
                new KeyValue(corner2.yProperty(), 300d),
                new KeyValue(corner3.xProperty(), 50d),
                new KeyValue(corner3.yProperty(), 380d)));
timeline.setCycleCount(Animation.INDEFINITE);
timeline.setAutoReverse(true);
timeline.play();
Pane pane = new Pane();
pane.setPrefSize(400, 400);

MoveTo corner1 = new MoveTo();
LineTo corner2 = new LineTo();
LineTo corner3 = new LineTo();

Path path = new Path(corner1, corner2, corner3, new ClosePath());
pane.getChildren().add(path);

Timeline timeline = new Timeline(
        new KeyFrame(Duration.ZERO,
                new KeyValue(corner1.xProperty(), 200d),
                new KeyValue(corner1.yProperty(), 200d),
                new KeyValue(corner2.xProperty(), 200d),
                new KeyValue(corner2.yProperty(), 200d),
                new KeyValue(corner3.xProperty(), 200d),
                new KeyValue(corner3.yProperty(), 200d)),
        new KeyFrame(Duration.seconds(2),
                new KeyValue(corner1.xProperty(), 100d),
                new KeyValue(corner1.yProperty(), 100d),
                new KeyValue(corner2.xProperty(), 250d),
                new KeyValue(corner2.yProperty(), 300d),
                new KeyValue(corner3.xProperty(), 50d),
                new KeyValue(corner3.yProperty(), 380d)));
timeline.setCycleCount(Animation.INDEFINITE);
timeline.setAutoReverse(true);
timeline.play();