2

私はカスタムヒートマップジェネレーターを作成中です。Javaでボックス(最大約100万個)を描画するのが最も速い方法は何だろうと思います。私が見つけたほとんどの質問は(ゲームのように)動的な画像に集中しており、静的な画像を取得するためのより良い方法があるかどうか疑問に思っています。私はswingを使用して(GridLayoutを介して、各ボックスに色付きのキャンバスを追加して)、Graphics2Dを使用してパネルに直接描画し、Processingライブラリを使用してみました。処理は非常に高速でクリーンな画像を生成しますが、ウィンドウはそれを維持するのに問題があるようです。最小化したり、ウィンドウを移動したりするたびに、画像のさまざまな部分が生成されます。

OpenGLについて聞いたことはありますが、触れたことはありません。時間をかける前に、OpenGL(または他の何か)がより良いアプローチであるかどうかについてフィードバックが必要でした。

4

1 に答える 1

2

静的画像の場合、それらを BufferedImage (BI) にペイントしてから、Graphics2D 経由で描画します。BI が最新かどうかを示すブール値を保持しています。そうすれば、高額な塗装費は一度しかかかりません。凝ったものにしたい場合は、BI をスケーリングして小さなサイズ変更を処理できます。サイズを大幅に変更する場合は、アーティファクトが発生しないように BI を再描画することをお勧めします。また、BI とデータのみを描画するため、データ (十字線、カーソル下の値など) をオーバーレイする場合にも役立ちます。

于 2010-08-04T17:57:28.670 に答える