Я столкнулся со странной проблемой при попытке перевернуть ось 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. но это не сработало.
Должен ли я позволить преобразованию вращаться с помощью PI, чтобы получить перевернутую ось y? Разве умножение масштабного коэффициента для оси y на минус 1 не должно быть таким же?