我已经看到了这个网站上有关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度时,我是完全错误的。你们可以帮我吗?
编辑:在阅读并看到回答该问题的代码时,我想我发现了一个新问题。如何设置与ivotX和pivotY的枢轴距离?
Edit2:这适用于用户@Slaw。我希望知道如何找到/设置X?
答案 0 :(得分:1)
如果您替换行
Group root = new Group(rectangle);
有以下两行
Circle pivot = new Circle(150, 225, 5, Color.BLACK);
Group root = new Group(rectangle, pivot);
然后以0、10、45、90度的小步长增加角度,这种行为我想起来更加清晰,这正是我所期望的。