Question

Je suis en train d'écrire un générateur de heatmap personnalisé. Je me demande ce que le meilleur moyen est de dessiner des boîtes (jusqu'à environ 1 million) en Java. La plupart des questions que j'ai trouvé se sont concentrés sur les images dynamiques (comme dans les jeux), et je me demande s'il y a une meilleure façon d'aller pour des images statiques. Je l'ai essayé d'utiliser oscillation (via un GridLayout et l'ajout d'une toile colorée à chaque boîte), en tirant directement sur le panneau avec Graphics2D, et aussi à l'aide des bibliothèques de traitement. Alors que le traitement est assez rapide et génère une image propre, la fenêtre semble avoir des problèmes le gardant; il génère différentes parties de l'image à chaque fois que vous réduisez au minimum, déplacer les fenêtres, etc.

Je l'ai entendu parler de OpenGL, mais je ne l'ai jamais touché, et je voulais des commentaires pour savoir si cela (ou quelque chose d'autre) serait une meilleure approche avant le temps investir.

Était-ce utile?

La solution

Pour les images statiques, je les peins à un BufferedImage (BI), puis piochez via Graphics2D. Je garde un booléen qui me dit si la BI est à jour. De cette façon, j'engage seulement le coût de la peinture coûteuse une fois. Si vous voulez obtenir la fantaisie, vous pouvez faire évoluer la BI pour gérer le redimensionnement mineur. Pour un grand redimensionnement vous aurez probablement envie de repeindre la BI afin de ne pas introduire des artefacts. Il est également utile pour superposer des données (telles que les réticules, la valeur sous le curseur, etc.) que vous êtes seulement la peinture de la BI et les données.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top