RotateTransition当前角度javafx2

时间:2013-03-05 14:14:22

标签: java animation javafx-2

我正在使用RotateTransition旋转图像,如果(x,y)是最初该图像上某点的位置,则位置将随图像旋转而不断变化。 我想在任何时候都知道这一点的意义。 如何获得这一点的新立场?

    ImageView wheel= new ImageView();
    wheel.setImage(image);

    rotateTransition = new RotateTransition(Duration.seconds(10), wheel);
    rotateTransition.setFromAngle(0);
    rotateTransition.setToAngle(360);
    rotateTransition.setInterpolator(Interpolator.LINEAR);
    rotateTransition.setCycleCount(Timeline.INDEFINITE);

//我关注的当前方法似乎不准确:

    rotateTransition.currentTimeProperty().addListener(
     new ChangeListener<Duration>() {public void changed(ObservableValue<? extends Duration> ov, Duration t, Duration t1) {
            double degree = ((360 * t.toSeconds()) / 10);
            xVal.set(((120) * Math.cos(degree * (Math.PI / 180))) + 162.5);
            yVal.set(((120) * Math.sin(degree * (Math.PI / 180)) + 162.5)); 
        }

1 个答案:

答案 0 :(得分:1)

要获取当前的旋转角度,您应该使用ImageView的{​​{3}}:

    wheel.rotateProperty().addListener(new ChangeListener<Number>() {
        @Override
        public void changed(ObservableValue<? extends Number> observable, 
                            Number oldValue, 
                            Number newValue) {
            System.err.println("Rotation of " + newValue + " degrees");
        }
    });