рисуя фигуру поверх изображения и поворачивая ее в java - PullRequest
2 голосов
/ 14 января 2011

Привет. Я рисую фигуру поверх изображения.Форма в основном содержит пару связанных линий.Теперь мне нужно повернуть нарисованную фигуру, но не фоновое изображение.Пока у меня есть код:

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 ]

1 голос
/ 02 февраля 2011

Одним из способов поворота Shape без влияния на фон является использование createTransformedShape() метода AffineTransform, как показано в этом примере .

1 голос
/ 14 января 2011

Вы можете изучить API Java2D и использовать методы перевода и поворота из Graphics2D.

Пример, который вы найдете здесь .

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

Обратите внимание, что угол приведен в радианах.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...