![]() |
Модераторы: LSD, AntonSaburov |
![]() ![]() ![]() |
|
FewG |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 19 Регистрация: 23.11.2010 Репутация: нет Всего: нет |
Как можно отобразить набор Graphics2D объектов (500 Кругов) в jPanel, c условием, что область с кругами дожна быть 1000 пикселей, а jFrame 300x300. При этом область с кругами отображалась полностью т.е. ужата до размеров jFrame.
Заранее спасибо. |
|||
|
||||
_Y_ |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1651 Регистрация: 27.11.2006 Репутация: 1 Всего: 34 |
А зачем так? Все равно разрешение при отображении будет 300 пикселей. Разумнее сразу строить круги в 300-пиксельном поле.
Даже если 1000-пиксельный оригинал трогать нельзя, визуально наилучшим результатом будет посторение дополнительной 300-пикскльной копии. Если же перестроить круги возможности почему-то нет, тогда надо получать пиксельное изображение и его сжимать. Но выглядеть это будет плоховато. ЗЫ; Еше можно заниматься извращениями. Например, получить пиксельный вариант изображения, распознать на нем круги и построить по найденным параметрам новое изображение ![]() Это сообщение отредактировал(а) _Y_ - 3.12.2011, 17:13 -------------------- Я вот в этом поучаствовал: http://sbor-nik.appspot.com/kick.jsp?id=sbor5737960678883328 (на правах саморекламы:) |
|||
|
||||
FewG |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 19 Регистрация: 23.11.2010 Репутация: нет Всего: нет |
Вся суть в том, что задание нарисовать столько-то кругов, отобразить всю область в меньшем по размеру фрейме и далее написать функцию для увеличения/уменьшения (zoom-in/zoom-out).
|
|||
|
||||
_Y_ |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1651 Регистрация: 27.11.2006 Репутация: 1 Всего: 34 |
А почему нельзя делать zoom-in/zoom-out именно при построении, а не пиксельно? Строите исходное изображение. Вводите коэффициенты зума и перестраиваете его под нужные размеры. По любому и код красивее будет и работать будет быстрее, да и картинка будет лучше, чем пиксели пережевывать.
-------------------- Я вот в этом поучаствовал: http://sbor-nik.appspot.com/kick.jsp?id=sbor5737960678883328 (на правах саморекламы:) |
|||
|
||||
FewG |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 19 Регистрация: 23.11.2010 Репутация: нет Всего: нет |
Можно ли примерчик попросить?
![]() |
|||
|
||||
_Y_ |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1651 Регистрация: 27.11.2006 Репутация: 1 Всего: 34 |
FewG, а примерчик чего?
![]() 1. "Векторный" подход. Каждая отображаемая на рисунке фигура описывается математической формулой. В Вашем случае это круги. При изменении масштаба изображение перерисовывается на основе имеющихся формул. Недостаток подхода - сложность подбора формул для "жизненных реалий", ведущая к необходимости разбиения сложного изображения на офигенное множество простых элементов. Но Вас-то эти проблемы не касаются - у Вас круги! 2. "Пиксельный" подход. Изображение рассматривается как набор пикселей. При уменьшении изображения цвет объединяемых пикселей смешивается-усредняется по тому или иному алгоритму. При увеличении изображения цвет имеющихся пиксели используются для вычисления цвета вновь образовавшихся пикселей. Опять же, алгоритм зависит от задачи. Недостатки - ухудшение качества изображения после каждого сжатия-растягивания. При работе с изображениями низкого разрешения контуры объектов начинают "ломаться". И зачем Вам это надо? 3. Комбинированный подход. Имеем пиксельное изображение. Выделяем на нем элементы и описываем их математически. Дальше идем по пути №1. Для Вашего случая делается довольно легко - круги ведь. Но хоть какой-то разумный смысл в этом еть только если есть картинка и невозможно просто так получить исходные параметры кругов. -------------------- Я вот в этом поучаствовал: http://sbor-nik.appspot.com/kick.jsp?id=sbor5737960678883328 (на правах саморекламы:) |
|||
|
||||
kamre |
|
||||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 330 Регистрация: 24.3.2006 Репутация: 2 Всего: 13 |
Вот, у меня что-то похожее на "векторный" подход завалялось:
В этом примере кстати видно насколько неточно рисуются окружности (через кривые Безье) при большом увеличении, т.к. все окружности по расчетам должны касаться друг друга. Это сообщение отредактировал(а) kamre - 4.12.2011, 12:12 |
||||
|
|||||
FewG |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 19 Регистрация: 23.11.2010 Репутация: нет Всего: нет |
_Y_ и kamre спасибо вам
![]() |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Java" | |
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, jk1. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Java: GUI и Java FX приложения | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |