2010-08-04 2 views
1

Я в процессе написания пользовательского генератора тепловой карты. Мне интересно, какой самый быстрый способ - нарисовать ящики (до 1 миллиона) на Java. Большинство вопросов, которые я нашел, сосредоточены на динамических изображениях (например, в играх), и мне интересно, есть ли лучший способ для статических изображений. Я пробовал использовать swing (через GridLayout и добавление цветного холста в каждое окно), рисуя непосредственно на панели с помощью Graphics2D, а также используя библиотеки обработки. Хотя обработка довольно быстро и создает чистый образ, у окна, похоже, есть проблемы с его сохранением; он генерирует различные части изображения, когда вы сворачиваете, перемещаете окна и т. д.Самый быстрый способ рисовать статическое изображение в Java

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

+0

трудно ответить. Бьюсь об заклад, один из первых ответов будет содержать: «контрольный показатель». Однако Graphics2D должен быть в порядке. Есть даже конвейер OpenGL для Graphics2D, который вы могли бы использовать. – Tedil

ответ

2

Для статических изображений я рисую их в BufferedImage (BI), а затем рисую через Graphics2D. Я сохраняю логическое значение, которое говорит мне, является ли BI актуальным. Таким образом, я только беру расходы на дорогостоящую картину. Если вы хотите получить фантазию, вы можете масштабировать BI для обработки незначительного изменения размера. Для значительного изменения размера вы, вероятно, захотите перерисовать BI, чтобы не вводить артефакты. Это также полезно для наложения данных (таких как перекрестие, значение под курсором и т. Д.), Поскольку вы только рисуете BI и данные.

+0

Меня не интересует изменение размера и все такое, просто в то время, когда я теряю время, так что это примерно так же быстро R (что может сделать около 6,5 миллионов точек в 25-секундных секундах). Это довольно хорошо - не так быстро, как я хотел, но определенно быстрее, чем то, что я делал. :) –

 Смежные вопросы

  • Нет связанных вопросов^_^