Масштабирование графической области рисования Java Swing / AWT - PullRequest
0 голосов
/ 02 декабря 2018

Я занимаюсь разработкой векторного графического редактора в Java Swing / AWT технологии.

Мне интересно решение для создания области рисования (рабочей области), размер которойразрешение экрана больше, чем у пользователя.

Например: Окно создания нового файла

public WorkspaceComponent() { setPreferredSize(new Dimension(**WIDTH**,**HEIGHT**));}

Пользователь хочет создать документ такого размера, например 1920 x 1080 [px] , но его / ее экран имеет только 1280 x 720 [px] .

У кого-нибудь есть идея или решение для масштабирования чертежаобласть для соответствия экрану и после экспорта, имеющая оригинальный размер?

1 Ответ

0 голосов
/ 07 декабря 2018

Используя AffineTransform в контексте Graphics2D, вы можете масштабировать область рисования.Используя это, вы могли бы даже реализовать что-то вроде функции увеличения / уменьшения.

double scaledSize = ... // do calculations of the scale here

AffineTransform t = new AffineTransform();
t.scale(scaledSize, scaledSize);
g2d.setTransform(t);

// do your drawing after setting the transform

Если ваш масштаб равен 1, он не изменит масштаб.Значение меньше единицы сделает его меньше, а значение больше 1 увеличит его.

...