2

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

double angle;
angle = f();
KeyValue keyAngle = new KayValue(angle, 360.0);

将角度投射到 WritableValue 也没有效果。有什么办法可以使这项工作?

4

1 回答 1

1

动画 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();
于 2013-05-01T09:55:48.730 回答