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