尝试翻转即时创建的坐标系的y轴时遇到一个奇怪的问题:

   private AffineTransform getTransform() {
        if (transform == null) {
            transform = new AffineTransform();
            double scaleX = (double) this.getWidth() / (coordinateSystem.getMaxX() - coordinateSystem.getMinY());
            double scaleY = (double) this.getHeight() / (coordinateSystem.getMaxY() - coordinateSystem.getMinY());
            transform.setToScale(scaleX, scaleY);
            double deltaX = (coordinateSystem.getMaxX() - coordinateSystem.getMinX()) / 2;
            double deltaY = (coordinateSystem.getMaxY() - coordinateSystem.getMinY()) / 2;
            transform.translate(deltaX, deltaY);
        }
        return transform;
    }

AffineTransform设置为缩放和转换。一切工作正常,除了我的y值是反转的(最大值是坐标系的底部,最小值是顶部)。我尝试通过反转y轴的比例因子来进行切换。但这不起作用。

我是否必须让Transform由PI旋转才能实现y轴翻转?
y轴的比例因子乘以1是否不应该相同?

最佳答案

你有错字

double scaleX = (double) this.getWidth() / (coordinateSystem.getMaxX() - coordinateSystem.getMinY());

(最后一个Y应该是X。)也许就是这样。

09-25 21:58