首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java Graphics2D缩放

Java Graphics2D缩放
EN

Stack Overflow用户
提问于 2015-02-28 23:20:48
回答 1查看 354关注 0票数 1

我在Java中使用Graphics2D缩放对象时遇到了困难。在我的paintComponent中,为了便于管理,我创建了两个graphics2D对象。然后我试着把它们放大。问题是输出是缩放的x4 (刻度命令相互影响)。否则,一切都会呈现出它应该呈现的样子。

如何最好地解决这个问题。

有关守则:

代码语言:javascript
复制
@Override
public void paintComponent(Graphics g) {
    playerGraphics     = (Graphics2D) g;
    backgroundGraphics = (Graphics2D) g;

    playerGraphics.scale(2.0, 2.0);
    backgroundGraphics.scale(2.0, 2.0);

    backgroundGraphics.drawImage(background.getBackground(), 0, 0, null);

    for(int i = 0; i < noPlayers; i++) {
        playerGraphics.drawImage(players.get(i).getCurrentSprite(), players.get(i).getXPos(), players.get(i).getYPos(), null);  
    }
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-02-28 23:24:13

playerGraphicsbackgroundGraphics变量都是对同一个Graphics实例的引用。因此,当你打电话给

代码语言:javascript
复制
playerGraphics.scale(2.0, 2.0);
backgroundGraphics.scale(2.0, 2.0);

实际上,您正在对同一个图形对象进行两次缩放,因此您要将其放大四倍。试着在其中一个上调用scale方法,或者更好的是,只有一个Graphics2D来调用这些方法。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28788151

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档