【问题标题】:JavaFX how to get the center of the X and Y axis - point [0,0] to be in the center of the imageJavaFX如何获得X和Y轴的中心-点[0,0]在图像的中心
【发布时间】:2016-12-05 08:47:22
【问题描述】:

My JavaFX 应用程序可以加载图像并允许用户单击它并打印出 X 和 Y 坐标。

问题是图像的左上角是图像的“中心”[0,0],而不是实际图像,知道如何将 X 和 Y 设置为中心吗?

这是加载图片的代码:

BufferedImage bufferedImage = ImageIO.read(file);
Image image = SwingFXUtils.toFXImage(bufferedImage, null);
myImageView.setImage(image);
myImageView.setFitWidth(300);
myImageView.setPreserveRatio(true);
myImageView.setCache(true);

这里是打印 mouseClickedEvent 位置的代码:

myImageView.setOnMouseClicked(ev -> {
    System.out.println("[" + ev.getX() + ", " + ev.getY() + "]");
});

红色矩形是实际的 [0,0] 蓝色矩形是预期的 [0,0]

【问题讨论】:

    标签: java javafx-2


    【解决方案1】:

    找到答案: 通过计算实际中心和预期中心之间的偏移量,我能够得到实际的 X 和 Y 坐标:

                double x = event.getX() - imageWidth / 2;
                double y = (event.getY() * -1) + (imageLength / 2);
                String msg ="[" + decimalFormat.format(x) + "," + decimalFormat.format(y) +"]";
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-01-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-02
      • 1970-01-01
      • 2017-02-05
      相关资源
      最近更新 更多