Масштабирование для объекта Graphics2D - PullRequest
0 голосов
/ 09 марта 2011

В настоящее время у меня есть объект Graphics2D, который действует как перпендикулярная система координат (обычная система x-y). Я хочу реализовать масштабирование, которое действует на слушателя мыши. Я думал о том, чтобы получить BufferedImage с Robot Class и затем использовать PixelGrabber для увеличения, но мне было интересно, могу ли я работать напрямую с Graphics2D без использования Изображение объектов.

1 Ответ

1 голос
/ 09 марта 2011

Да. Вы можете использовать AffineTransform (в частности, AffineTransform.getScaleInstance ) для масштабирования всех аспектов графического контекста. Вы можете использовать это для увеличения (создать больший масштаб) или уменьшения (используйте масштаб меньше 1). У меня есть сообщение в блоге, которое показывает, как использовать AffineTransforms для таких вещей, как вращение и перевод , и не столько масштабирование, но это аналогичный принцип. Вам нужно помнить о том, как масштабирование графического контекста влияет на такие вещи, как выделение, слушатели и т. Д. (Ваша система координат для панели должна быть преобразована в систему координат для графического контекста, чтобы правильно выбрать / щелкнуть на объекты в масштабированном графическом контексте.)

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