Проблема с анимацией JavaFX. AnimationTimer
animationtimer почему-то суммирует скорости всех планет и они двигаются с одинаковой скоростью. Как сделать так, чтобы скорость вращения планет по орбите была разной?
Вот код:
`static double theta = 0;
static double x;
static double y;
double radius = 0;
double speed=0;
AnimationTimer moved = new
AnimationTimer() { //добавление методов в таймер
public void handle(long now) {
movemerk();
moveven();
moveearth();
}
};
public void move(){ //старт анимации(этот метод присваитвается кнопке на форме)
moved.start();
}
public void moveven(){ //метод для анимации вращения венеры
speed=0.01d; //скорость вращения по орбите
radius=85; //размер орбиты
theta += speed;
if (theta >= 2 * Math.PI) { theta = 0; }
x = radius * Math.cos(theta);
y = radius * Math.sin(theta);
venera.setY(y); //venera это image view
venera.setX(x);
}
public void moveearth(){
speed=0.02d;
radius=105;
theta += speed;
if (theta >= 2 * Math.PI) { theta = 0; }
x = radius * Math.cos(theta);
y = radius * Math.sin(theta);
earth.setY(y);
earth.setX(x);
};
public void movemerk(){
radius = 57;
speed=0.03d;
theta += speed;
if (theta >= 2 * Math.PI) { theta = 0; }
x = radius * Math.cos(theta);
y = radius * Math.sin(theta);
merkury.setY(y);
merkury.setX(x);
}`
