在javafx中旋转和旋转是如何工作的?

在javafx中旋转和旋转是如何工作的?,javafx,Javafx,我在这个网站上看到了关于javafx中的轮换的问题,但我似乎没有理解。下面是一些代码: import javafx.application.Application; import javafx.scene.Group; import javafx.scene.Scene; import javafx.scene.paint.Color; import javafx.scene.shape.Rectangle; import javafx.

我在这个网站上看到了关于javafx中的轮换的问题,但我似乎没有理解。下面是一些代码:

    import javafx.application.Application; 
    import javafx.scene.Group; 
    import javafx.scene.Scene; 
    import javafx.scene.paint.Color; 
    import javafx.scene.shape.Rectangle; 
    import javafx.scene.transform.Rotate; 
    import javafx.scene.transform.Scale; 
    import javafx.scene.transform.Translate; 
    import javafx.stage.Stage; 

    public class TransformationsExample extends Application { 
        @Override 
        public void start(Stage stage) { 
            Rectangle rectangle = new Rectangle(50, 50, 100, 75);      
            rectangle.setFill(Color.BURLYWOOD);      
            rectangle.setStroke(Color.BLACK);     
            Rotate rotate = new Rotate();    
            rotate.setAngle(90);         
            rotate.setPivotX(150); 
            rotate.setPivotY(225); 
            rectangle.getTransforms().addAll(rotate);              
            Group root = new Group(rectangle);  
            Scene scene = new Scene(root, 1400, 780);      
            stage.setTitle("Transformations"); 
            stage.setScene(scene); 
            stage.show(); 
        }      
        public static void main(String args[]){ 
            launch(args); 
        } 
    }
为什么当我改变角度时,矩形开始出现在随机的地方?例如,当我设置角度为180时,矩形出现在中间。我的理解是,矩形围绕X:150和Y:225以指定角度移动。但是,当我将角度设置为180时,我完全错了。你们能帮帮我吗

编辑:当阅读并看到代码回答了这个问题时,我想我发现了一个新问题。如何设置与pivotX和pivotY的旋转距离

Edit2:这是为用户@Slaw准备的。我希望知道你如何找到/设置X?

如果更换管路

Group root = new Group(rectangle); 
用下面两行

Circle pivot = new Circle(150, 225, 5, Color.BLACK);
Group root = new Group(rectangle, pivot); 

然后以0度,10度,45度,90度的小步增加你的角度,行为会变得更清晰,我想这正是我所期望的

假设我理解您的期望,那么代码似乎做了您认为应该做的事情。尝试执行稍微修改过的代码版本,该版本将为矩形设置动画并显示轴点。这更有意义吗?还是你仍然期待着一些不同的东西?请注意,您的轴心点位于矩形之外。@Slaw,这在向我展示轴心点时提供了大量信息,谢谢!如果pivotX为150,pivotY为225,则矩形将围绕这些点旋转。但是,一个问题是,矩形和红点之间的距离来自哪里?代码中没有设置距离。我希望矩形尽可能靠近红点。我该怎么做?不是旋转点,而是旋转距离?比如,矩形离红点有多远?我如何找到距离@Slaw@Slaw,假设我想将矩形放置在旋转180度的位置(610275)。我该怎么做?如果你想绕着它的中心旋转矩形,那么你必须将轴点绑定到矩形的中心:
(x+width/2,y+height/2)
。我以前问过这个问题,但是圆和矩形之间的距离从何而来?最重要的是,如何将距离设置为某个值?感谢您抽出时间回答我的问题。