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来相同吗?
答案 0 :(得分:4)
你有错字
double scaleX = (double) this.getWidth() / (coordinateSystem.getMaxX() - coordinateSystem.getMinY());
(上次Y
应为X
。)也许就是这样。
答案 1 :(得分:1)
根据PI旋转实际上根本不是一个正确的解决方案,因为它会翻转X轴和Y.