私はグラフィックスプログラミングが初めてです。あなたは有向グラフを描くことができるプログラムを作成しようとしています。私は最初に(ノードを表す)矩形のセットを描画し、Javaのペイントメソッドをオーバーライドすることによってパンとズームの機能を作成しました。ドットグリッドを描く
これはすべて、あまりにも多くのノードが存在しない間にはうまくいくと思われます。私の問題は、ドット・グリッドを描画しようとするときです。私は、forループのネストされた2を用いたドットのグリッドをオーバーレイその最初のテストコードの単純なビットを使用:
int iPanX = (int) panX;
int iPanY = (int) panY;
int a = this.figure.getWidth() - iPanX;
int b = this.figure.getHeight() - (int) iPanY;
for (int i = -iPanX; i < a; i += 10) {
for (int j = -iPanY; j < b; j += 10) {
g.drawLine(i, j, i, j);
}
}
これは私がグリッドをパンすることができますが、ズームしていません。しかし、パニング時のパフォーマンスはひどいです!私は多くの検索をしましたが、私は何かを見つけることができないので、何かを見逃しているに違いないと感じています。
何か助けや指針をいただければ幸いです。
--Stephen
など、比例大きな線幅につながるおかげで、パフォーマンスが大規模に増加しています!アイロンをかけなければならないいくつかの欠点がありますが、全体的に改善されています。 ズーム用のソリューションは理想的ではありません。これは、グリッドのサイズを拡大して、1つのピクセルとして保持したいと考えているためです。調整するためにグリッドimgを更新しますか? – SRoe
ええ、その後私に起こった。ズームの変化の頻度によって異なります。私はすべてのズームの変更でグリッドイメージを更新する必要がありますと思います。ペイント(g)では、グリッドを1:1のズームで描画し、塗りつぶす残りのオブジェクトのスケーリング係数を設定することができます。私は私の答えでそれを更新するつもりだと思う。 – Stroboskop