我的 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]
最佳答案
找到答案: 通过计算实际中心和预期中心之间的偏移量,我能够得到实际的 X 和 Y 坐标:
double x = event.getX() - imageWidth / 2;
double y = (event.getY() * -1) + (imageLength / 2);
String msg ="[" + decimalFormat.format(x) + "," + decimalFormat.format(y) +"]";
关于JavaFX如何获取X轴和Y轴的中心-点[0,0]位于图像的中心,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40970267/