Frage

Ich bin in dem Prozess einen eigenen Heatmap-Generator zu schreiben. Ich frage mich, was der schnellste Weg ist Boxen zu zeichnen (bis zu rund 1 Million) in Java. Die meisten Fragen, die ich gefunden habe, habe auf dynamische Bilder (wie in den Spielen) konzentriert, und ich frage mich, ob es einen besseren Weg für statische Bilder zu gehen. Ich habe mit Swing versucht (über ein Gridlayout und das Hinzufügen eine farbige Leinwand zu jedem Kasten), direkt auf dem Panel mit Graphics2D zeichnen, und auch durch die Verarbeitungsbibliotheken. Während Verarbeitung ziemlich schnell ist und erzeugt ein sauberes Bild, scheint das Fenster Probleme, die es zu halten zu haben; es erzeugt verschiedene Teile des Bildes, wenn Sie minimieren, verschieben Sie die Fenster, etc.

Ich habe von OpenGL gehört, aber ich habe es nie berührt, und ich wollte ein Feedback darüber, ob das (oder etwas anderes), wäre ein besserer Ansatz sein, bevor die Zeit darin zu investieren.

War es hilfreich?

Lösung

Für statische Bilder, male ich sie zu einem BufferedImage (BI) und dann, dass über Graphics2D ziehen. Ich halte eine boolean, das mir sagt, ob die BI bis heute liegt. So kann ich nur entstehen, die teueren Gemälde Kosten einmal. Wenn Sie bekommen Lust möchten, können Sie die BI skalieren kleinere Größe neu bestimmen zu handhaben. Für einen großen Redimensionierung werden Sie wahrscheinlich wollen die BI, um nicht vorstellen Artefakte neu zu zeichnen. Es ist auch nützlich für die Daten (wie zB Fadenkreuz, der Wert unter dem Cursor, usw.), die über wie Sie nur die BI und die Daten zu malen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top