Animation 使用时间轴设置圆弧动画
在我的smithchart项目中,我正在尝试为圆弧设置动画。我通过f计算开始和停止角度,f返回一个双精度值,但找不到使用该角度的方法。点是具有双重类型的角度不能用于接受WriteableValue的KeyValueAnimation 使用时间轴设置圆弧动画,animation,javafx-2,javafx,Animation,Javafx 2,Javafx,在我的smithchart项目中,我正在尝试为圆弧设置动画。我通过f计算开始和停止角度,f返回一个双精度值,但找不到使用该角度的方法。点是具有双重类型的角度不能用于接受WriteableValue的KeyValue double angle; angle = f(); KeyValue keyAngle = new KayValue(angle, 360.0); 此外,将角度转换为WritableValue也没有效果。 有什么方法可以实现这一点吗?动画API使用属性(实现WritableVal
double angle;
angle = f();
KeyValue keyAngle = new KayValue(angle, 360.0);
此外,将角度转换为WritableValue也没有效果。
有什么方法可以实现这一点吗?动画API使用属性(实现WritableValue)。因此,如果要使用动画更改圆弧的
startAngle
,则应将arc#startAngleProperty()
提供给KeyValue
:
KeyValue kv = new KeyValue(arc.startAngleProperty(), my_double_angle_value);
动画圆弧的一个示例:
Arc arc = ArcBuilder.create()
.centerX(150)
.centerY(150)
.radiusX(100)
.radiusY(50)
.startAngle(0)
.length(30)
.type(ArcType.ROUND)
.fill(Color.RED)
.build();
Pane root = new Pane();
root.getChildren().add(arc);
Scene scene = new Scene(root, 300, 250);
primaryStage.setTitle("Hello Arc!");
primaryStage.setScene(scene);
primaryStage.show();
KeyValue kv = new KeyValue(arc.startAngleProperty(), 360);
KeyFrame kf = new KeyFrame(Duration.seconds(3), kv);
Timeline timeline = new Timeline();
timeline.setAutoReverse(false);
timeline.setCycleCount(Timeline.INDEFINITE);
timeline.getKeyFrames().add(kf);
timeline.play();