JavaFX 获取旋转图像视图的角坐标?

我正在做一个简单的模拟,并且在找到旋转的、大小奇怪的 imageView 节点的 X 和 Y 坐标时遇到了很多麻烦。(蓝色位是前面)

http://img4.mukewang.com/6109fbcf00014f0a02960206.jpg

目标是在 imageView 旋转后找出相对于 imageView 指向的方向的 XY 坐标。我可以找到 imageView 相对于其起始位置的角度,但我无法弄清楚如何获得 imageView 相对于该角度的 XY 坐标。由于 .setRotate(angle) 方法不会改变 imageView 的 X 和 Y 位置,我应该如何找到 imageView 面对的点?


我正在使用的旋转和 imageView 的最小示例:


主程序


public class Main extends Application {


    @Override

    public void start(Stage primaryStage) {

        Group root = new Group();


        primaryStage.setScene(new Scene(root, 500, 500));


        Image robotImage = null;


        try {

            robotImage = new Image(new FileInputStream("res\\robot.png"));

        } catch (FileNotFoundException e) {

            e.printStackTrace();

        }


        ImageView robot = new ImageView(robotImage);

        robot.setLayoutX(125);

        robot.setLayoutY(125);


        System.out.println("PreRotate X: " + robot.getLayoutX() + "PreRotate Y: " + robot.getLayoutY());

        robot.setRotate(45);

        System.out.println("PostRotate X: " + robot.getLayoutX() + "PostRotate Y: " + robot.getLayoutY());

        root.getChildren().add(robot);


        primaryStage.show();

    }



    public static void main(String[] args) {

        launch(args);

    }

}

我已经尝试使用 imageView 的边界以及位于 imageView 顶部的线条,但这需要我在每次 imageView 更改其最大/最小 x/y 时找到新的最大/最小 x/y。

我应该如何处理这个问题?我使用了错误的转换吗?我没有看到可以用于此的方法吗?我知道必须有更好的方法。谢谢阅读。


HUH函数
浏览 227回答 1
1回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java