2017-01-30 28 views
1

Я создал метод, который позволяет мне выбрать фигуру и повернуть ее. Мне было интересно, если кто-нибудь знает, как повернуть его на 45 градусов на месте.JavaFX - вращение на пятне?

RotateMethod

public void rotateObject() { 
    int i=0; 
    selectedShapes.get(i++).getTransforms().add(new Rotate(45, 360, 360)); 
} 

Метод получает выбранный элемент, а затем поворачивает его, когда кнопка нажата. В настоящее время он будет вращать его на 360 градусов вокруг сцены. Я хочу, чтобы он вращался вокруг того же места. Если есть лучший способ реализации этого метода вращения, пожалуйста, просветите меня. Спасибо

РЕДАКТИРОВАТЬ:

После реализации способа, указанных ниже, выбранная форма этого вращается на 45 градусов по мере необходимости. Тем не менее, он вращается только один раз, как я могу переписать метод, чтобы позволить ему вращаться на 45 градусов каждый раз, когда я нажимаю на моей кнопке Повернуть

public void rotateObject(ActionEvent event) throws IOException{ 
    int i = 0; 
    selectedShapes.get(i++).setRotate(45); 
} 
+0

AFAIK это будет вращать 20 градусов по x, y 360,360. Я думаю, что это помогает. – Mordechai

ответ

1

Попробуйте

double angle[0] = {0}; 

public void rotateObject(ActionEvent event) throws IOException{ 
    int i = 0;//I don't understand this part of our code? 
    angle[0] = angle[0] + 45;//Every time the button is pressed rotate 45 degrees. 
    selectedShapes.get(i++).setRotate(angle[0]); 
} 
+0

Эй, это делает то, что я хочу! так что спасибо за это! однако я могу только повернуть его один раз. Знаете ли вы, как я напишу его, чтобы он продолжал вращать его (каждый раз, когда я нажимаю кнопку). Спасибо – TheBeliever12

+0

Эй, я попробовал еще не повезло. Int i - это способ доступа к элементам внутри узла. private List selectedShapes = new ArrayList <>(); – TheBeliever12

+0

Да, но так, как написано, вы всегда вызываете элемент, когда i = 0; – Sedrick