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();