在图像上绘制一个形状并在java中旋转它

时间:2011-01-14 06:17:35

标签: java graphics

嗨我正在图像上画一个形状。形状基本上包含几条相连的线。我现在需要旋转绘制的形状而不是背景图像。我到目前为止的代码是:

public void drawTrack(){
    try {

        File input = new File(mapPath);
        md.image = ImageIO.read(input);
    } catch (IOException ie) {
        System.out.println("Error:"+ie.getMessage());
    }

    Graphics2D g2d = md.image.createGraphics();
    g2d.setColor(Color.RED);
    BasicStroke bs = new BasicStroke(2);
    g2d.setStroke(bs);


    int currentX = Integer.parseInt(ts.xcord.getText());
    int currentY = Integer.parseInt(ts.ycord.getText());
    int scale = Integer.parseInt(ts.size.getText());
    td.computeTracksMotion(currentX, currentY, scale);

    for(TracksMotion currentTm: td.tm){
    // drawing the lines    g2d.drawLine(currentTm.oldX,currentTm.oldY,currentTm.newX,currentTm.newY);
    }

    md.repaint();
}
你可以告诉我应该怎么做。

2 个答案:

答案 0 :(得分:1)

您可以浏览Java2D API并使用Graphics2D中的translate和rotate方法。

您找到here的示例。

  AffineTransform rat = new AffineTransform();
  rat.setToTranslation(100, 0);
  rat.rotate(Math.PI / 6);
  g2.transform(rat);

请注意,角度以弧度表示。

答案 1 :(得分:1)

在不影响背景的情况下轮播Shape的一种方法是使用AffineTransformcreateTransformedShape()方法,如example所示。