2011-01-14 64 views
2

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

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(); 
} 

你能让我知道我该怎么做。

+0

重新格式化的代码;如果不正确请回复。 – trashgod 2011-02-02 01:29:03

回答

1

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

例如,您发现here

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

请注意,角度以弧度为单位。

+0

当我使用g2d.rotate出于某种原因我的图像不旋转。 – 2011-01-14 08:16:13