gpt4 book ai didi

Java 2D,在 X 和 Y 轴上具有相同数量的翻译会导致不同的结果

转载 作者:行者123 更新时间:2023-11-29 07:44:23 25 4
gpt4 key购买 nike

我只是为了一个周末项目而使用 Java 2D。我试图完成的只是在距离原点 50,50 的位置加载和绘制图像。现在,当我尝试做到这一点时,使用

g2d.drawImage(imageLeft, 50, 50, 200, 200, null);

然后我得到以下信息:

坦率地说,这让我有点困惑。为什么翻译的 x 部分与 y 部分的缩放比例不同?这里发生了什么?一定是一个明显的初学者错误,但我无法弄清楚我一生中这种行为的原因;-)

我用来绘制图像的完整代码是:

final IsogenWindow window = new IsogenWindow();
final BufferedImage imageLeft = loadImage(new File(getClass().getResource("/texture/tile1.png").toURI()));
final Graphics2D g2d = Graphics2D)window.getGraphics();

window.setSize(1000, 1000);
window.setVisible(true);

g2d.drawImage(imageLeft, 50, 50, 200, 200, null);

编辑 1:为了尝试 DontRelaX 的建议,我更改了我的代码,以便将一个面板添加到 JFrame 并将其 Graphic2D 对象用于绘图:

getContentPane().setLayout(null);
this.renderPanel = new JPanel();
getContentPane().add(renderPanel);
final Graphics2D g2d = (Graphics2D)renderPanel.getGraphics();
...
g2d.drawImage(imageLeft, 50, 50, 200, 200, null);

不幸的是,结果还是一样。但我认为 DontRelaX 走在正确的轨道上。还有什么建议吗?

编辑 2:基本上 DontRelaX 的回答是正确的。我确实没有使用 renderPanel 的 Graphics2D,而是仍然使用 JFrame 的 Graphics2D 对象。

干杯,纳米庸医

最佳答案

像素从窗口的左上角开始计数,而不是灰色位置。将面板添加到您的窗口并在其上绘制。

关于Java 2D,在 X 和 Y 轴上具有相同数量的翻译会导致不同的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27193407/

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