2013-04-28 4 views
0

Я знаю, как вращать изображение, но как бы повернуть объект Objet? Я не могу использовать g2d.rotate();, потому что у меня есть несколько вещей, нарисованных с помощью метода paint(), и я просто не могу повернуть его.Вращающийся объект

+1

Для лучшей помощи раньше, опубликовать [SSCCE] (http://sscce.org/). Обратите внимание, что можно повернуть «Графика» для одного объекта, а затем повернуть его обратно для всего остального. –

+1

@AndrewThompson: IIUC, вы можете сохранить и восстановить преобразование, как показано [здесь] (http://stackoverflow.com/a/9373195/230513). – trashgod

+0

@Fiskpotatis принимает ответы, если они помогли вам, нажав галочку слева от ответа. –

ответ

1
  • С вами это приложение Качели, вы не хотите, чтобы рисовать в методе paint(...) а в paintComponent(...) методом JComponent-производного класса.
  • Чтобы повернуть один объект, подумайте о создании копии объекта Graphics, позвонив по номеру create(), вызвав rotate(...) новый экземпляр Graphics, создав вращающийся элемент с помощью нового экземпляра Graphics2D, а затем удалив скопированный объект Graphics.
1

Вы можете преобразовать изображения в класс java.awt.geom.AffineTransform или реализовать собственную матрицу вращения.

Вращение фактического объекта означает, что вы знаете его текущее местоположение, ориентацию и точку поворота. Матрица вращения - это решение.

http://en.wikipedia.org/wiki/Rotation_matrix

Смежные вопросы