gpt4 book ai didi

java - 仿射变换和翻转 y 轴

转载 作者:搜寻专家 更新时间:2023-11-01 02:33:12 26 4
gpt4 key购买 nike

我在尝试翻转我创建的坐标系的 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。)也许就是这样。

关于java - 仿射变换和翻转 y 轴,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4498171/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com