Pregunta

Estoy en el proceso de escribir un generador de mapa de calor personalizado. Me pregunto cuál es la manera más rápida es dibujar cajas (hasta alrededor de 1 millón) en Java. La mayoría de las preguntas que he encontrado han concentrado en las imágenes dinámicas (como en los juegos), y me pregunto si hay un mejor camino a seguir para las imágenes estáticas. He intentado usar el columpio (a través de un GridLayout y la adición de un lienzo de color para cada caja), dibujando directamente sobre el panel con Graphics2D, y también mediante el uso de las bibliotecas de procesamiento. Mientras procesamiento es bastante rápido y genera una imagen limpia, la ventana parece tener problemas para mantener ella; genera diferentes partes de la imagen cada vez que minimizar, mover las ventanas, etc.

He oído hablar de OpenGL, pero nunca he tocado, y quería alguna información acerca de si esto (o algo más) sería un mejor enfoque antes de invertir tiempo en él.

¿Fue útil?

Solución

Para imágenes estáticas, pinto a un BufferedImage (BI) y tire de que a través de Graphics2D. Guardo un booleano que me dice si el BI es hasta la fecha. De esa manera sólo incurrir en el costo de pintura caro vez. Si usted desea conseguir la suposición, puede escalar la BI para manejar el cambio de tamaño menor. Para un cambio de tamaño importante es probable que desee volver a pintar la BI a fin de no introducir artefactos. También es útil para la superposición de datos (por ejemplo en forma de cruz, el valor bajo el cursor, etc), ya que sólo está pintando la BI y los datos.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top