如何以特定方式旋转和绘制图像?

时间:2014-04-22 20:23:02

标签: java swing graphics rotation

我有一条线。我知道那条线的终点和一个角度,它告诉它倾斜了多少度。我想以这样的方式绘制图像,以便图像的底部中心点接触线的端点,如下所示:

enter image description here

可悲的是,只有当线路没有旋转时,我才得到想要的结果,如上所述。如果旋转了90度,我得到这个:

enter image description here

这是绘制图像的代码(线已经被该点绘制)。

public void drawCreature(Graphics2D g) {
    int centered = creature.getX() - creature.getImage().getWidth()/2;
    BufferedImage image = creature.getImage();
    BufferedImage rotatedImage = new BufferedImage(image.getWidth(), image.getHeight(), 
                                                   BufferedImage.TYPE_INT_ARGB);
    Graphics2D g2d = (Graphics2D)rotatedImage.getGraphics();
    g2d.rotate(Math.toRadians(creature.getAngle()), rotatedImage.getWidth()/2,
               rotatedImage.getHeight()/2);
    g2d.drawImage(creature.getImage(), 0, 0, null);
    g.drawImage(rotatedImage, centered, creature.getY(), null);
  }

任何帮助都将不胜感激。

0 个答案:

没有答案