嗨我正在图像上画一个形状。形状基本上包含几条相连的线。我现在需要旋转绘制的形状而不是背景图像。我到目前为止的代码是:
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 :(得分: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
的一种方法是使用AffineTransform
的createTransformedShape()
方法,如example所示。