Изменение размера объектов формы в Java - PullRequest
0 голосов
/ 17 декабря 2009

У меня есть Java-апплет, форма, которая рисует в нем фигуры (Rect, Oval, Line). Каждая фигура представлена ​​2 точками и может нарисовать себя в форме. Когда размер формы JApplet изменится, мне нужно также изменить размеры форм, сохранив соотношение сторон.

Я не нашел качественного решения для решения этой проблемы.

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

1 Ответ

0 голосов
/ 17 декабря 2009

Вы не даете подробностей, но я предполагаю, что при масштабировании объект перемещается так же, как и масштаб. Вам нужно будет кое-что знать о графических преобразованиях. Есть два основных подхода:

  • изменить размер объекта путем масштабирования его координат

  • применить матрицу преобразования к объекту. Это, вероятно, лучший способ.

Если вы используете Graphics2D (http://java.sun.com/j2se/1.4.2/docs/api/java/awt/Graphics2D.html), у вас будет доступ к преобразованиям.

При изменении размера окна вы захотите определить, какое измерение (ширина или высота) больше всего влияет на шкалу, и выберите другое - это остановит слишком широкое расширение объекта. Рассчитайте одну шкалу и примените ее одинаково к X и Y.

Вероятно, у вас не будет объекта в начале координат. В этом случае вам необходимо выполнить три операции: - перевести объект в начало координат - изменить масштаб - переведите его туда, где он был

Эти операции можно объединить в одну матрицу.

Я не могу быть более определенным, так как не знаю деталей вашей проблемы, но это должно дать вам несколько советов.

Попробуйте примеры в: http://www.java2s.com/Code/Java/2D-Graphics-GUI/Linetransformationrotationshearscale.htm который должен показать вам некоторые эффекты.

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