在我的 smithchart 项目中,我正在尝试为弧设置动画。我通过 f 计算了开始和停止角度,它返回一个双精度值,但找不到使用该角度的方法。关键是具有 double 类型的角度不能在接受 WriteableValue 的 KeyValue 中使用。
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();