2011-01-14 13 views
2

こんにちは、画像上に図形を描いています。形状には基本的に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

答えて

1

Java2D APIを探索し、Graphics2Dのtranslateメソッドとrotateメソッドを使用できます。

例はhereです。

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

角度はラジアンで提供されています。このexampleに見られるような背景に影響を与えることなく、Shapeを回転させる

+0

g2d.rotateを何らかの理由で使用すると、画像が回転しません。 –

+0

@Tomあなたはこの例をチェックしましたか?それが再描画されたことを確認しましたか? – stacker

+0

これは、この例に示すように、グラフィックスコンテキスト全体を回転させる効果があります。http://stackoverflow.com/questions/3420651 – trashgod

関連する問題