在我的smithchart项目中,我试图为弧形设置动画。我通过f计算了开始和停止角度,它返回一个双精度但无法找到使用该角度的方法。该点是具有双重类型的角度,不能在接受WriteableValue的KeyValue中使用。
double angle;
angle = f();
KeyValue keyAngle = new KayValue(angle, 360.0);
同样向WritableValue投射角度无效。 有没有办法让这项工作?
答案 0 :(得分:1)
Animation 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();