我正在创建一个涉及六边形网格的程序,我使用下面的代码进行转换:
g2d.translate((double) WIDTH / 2, (double) HEIGHT / 2);
g2d.scale(scale, scale);
g2d.translate(-(double) WIDTH / 2, -(double) HEIGHT / 2);
g2d.translate(translationX, translationY);
当我点击鼠标时,程序应检查六边形是否包含其中的点,但在应用转换后它不起作用。有谁知道如何恢复转换,以便我可以在应用转换之前获得鼠标的位置?我尝试了一些公式,但似乎都没有。
答案 0 :(得分:0)
您可以调用g2d.getTransform()
获取当前转换矩阵,然后使用其inverseTransform()
方法将画布上的像素坐标转换为当前坐标系中的逻辑坐标。