作成中の座標系の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軸の倍率を反転させて切り替えてみました。しかし、これは機能していませんでした。
反転したy軸を実現するには、変換をPIで回転させる必要がありますか?y軸の倍率にマイナス1を掛けるのは同じではありませんか?