Изменение размера графики Java-апплета - PullRequest
0 голосов
/ 03 марта 2011

Итак, у меня есть задание, которое принимает два входа, мужчин и женщин, и выводит matingPairs, произведение двух.

В дополнение к этому, инструкции просят нарисовать фигуру, используя один изэти переменные.

Я решил нарисовать круги для каждого значения.

Сначала я рисую matingPairs, а затем меньшие мужские и женские круги поверх исходного, большего круга matingPairs.

Проблема, с которой я сталкиваюсь, заключается в представлении графики в апплете.Если числа превышают, скажем, 100, рисунок становится слишком большим для апплета.

Я ищу способ, по которому круг matingPairs всегда должен заполнять апплет, а затем динамически настраивать мужчин и женщин таким образом, чтобыих размер масштабируется относительно размера круга matingPairs.Я использую JApplet.

Большое спасибо за любые советы.Я действительно ищу решение, скорее толчок в правильном направлении.

Ответы [ 2 ]

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

Может быть, вы должны предоставить больше инструкций о том, как вы рисуете круги в объекте Graphics.
Идея состоит в том, чтобы управлять двумя двумерными пространствами с различными масштабами;первый представляет собой входные данные, а второй представляет доступную область для рисования таких данных.Первый может иметь данные в любом месте, например (5, 5), (0.2, 0.3) или (1200, 3400).Ключ заключается в том, чтобы отобразить исходные координаты первого пространства во второе, используя правильное преобразование: масштаб + перевод.
Это преобразование должно быть рассчитано до начала рисования и применяется к любой нарисованной точке.
Идея состоит в том,сопоставить прямоугольник, в котором находятся входные данные, с доступной областью в графике.Если графическая область имеет размер 200x200 пикселей и данные могут иметь размер от (0, 0) до (400, 400), просто разделите на 2 координаты точек для рисования.Если исходные данные не центрированы в (0, 0), используйте перевод.

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

Итак, вам нужно знать, как получить размер холста апплета или как соответственно масштабировать мужские / женские круги?

Редактировать:

Рисование круга для заполненияПлощадь 600х600 должна быть легкой.Просто имейте в виду, что вы часто указываете левый верхний угол круга, а также ширину и высоту (то есть диаметр) при вызове drawOval () / fillOval () или аналогичных методов.

Следующий вопрос: чтопредставляет размер входного (мужчины / женщины) и выходного (пары), площадь или радиус кругов?Как бы то ни было, должно быть легко рассчитать отношение ввода / вывода, а затем умножить на него фиксированный размер выходного круга, чтобы получить размер входного круга.

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