Я пытаюсь изменить параметры анимации вращения (x, y, z и vv), используя метод дескриптора таймера анимации (давно), но я не знаю, как перенаправлять значения при каждой итерации.
Я попытался разместить там конструкторы:
Cylinder cyli = new Cylinder(200,40);
Translate trans3 = new Translate(0, 0, 0);
cyli.getTransforms().add(trans3);
cyli.setMaterial(pm);
cyli.setDrawMode(DrawMode.LINE);
Group group = new Group();
group.setTranslateX(150);
group.setTranslateY(150);
group.setTranslateZ(100);
rotate = new Rotate(0, axis);
group.getTransforms().setAll(rotate);
group.getChildren().add(cyli);
center.getChildren().add(group);
final Timeline rotationAnimation = new Timeline();
rotationAnimation.setCycleCount(1);
timer = new AnimationTimer() {
@Override
public void handle(long now) {
axis = new Point3D(x, y, z);
rotate = new Rotate(0, axis);
speed = 1/vv;
duration = Duration.seconds(speed);
//x, y, z and vv are values set by the user (variables)
}
};
duration = Duration.seconds(speed);
KeyValue keyValue1 = new KeyValue(rotate.angleProperty(),360);
KeyFrame keyFrame1 = new KeyFrame(duration, keyValue1);
rotationAnimation.getKeyFrames().add(keyFrame1);
rotationAnimation.play();
timer.start();
Я хотел изменить значения x, y, z и vv во время или между анимациями, эти значения могут быть изменены при любомдали время, но они остались прежними.Я пришел к выводу, что мне нужно каким-то образом переместить всю группу в метод handle, но я не знаю, как это сделать.