2

単一のグラフィックス コンテキストでいくつかの計算を実行する必要がある Line2D がたくさんあります。たとえば、どれが交差しているか、どれが重なり合っているかなどを確認する必要があるだけです。グラフィックを表示する必要はなく、バックグラウンドで実行するだけです。これには何が最善のアプローチでしょうか?

4

2 に答える 2

1

表示する必要がない場合は、グラフィックス コンテキストを作成する必要はありません。Line2D.Double (または Line2D.Float) オブジェクトを目的の座標で構築し、必要に応じてintersectsLine(Line2D)メソッドを呼び出します。

例えば:

Line2D.Double firstLine = new Line2D.Double(0.0, 0.0, 1.0, 1.0);
Line2D.Double secondLine = new Line2D.Double(0.5, 0.0, 0.5, 1.0);
boolean intersectionOccurs = firstLine.intersectsLine(secondLine);

私のメンタルグラフジェネレーターが機能している場合、intersectionOccurs に当てはまります。

于 2012-07-29T17:12:28.530 に答える
0

グラフィックスが何らかの形で同じプログラムに表示される何かに直接関係していない限り、これはおそらく良い方法ではありません。どの描画操作がどのビットに影響を与えるかの詳細は難解で、文書化されておらず、ほとんどの場合、ある環境から別の環境への一貫性が保証されていません。

たとえば、数学的に交差する 2 つの線は、ピクセルを共有せずに互いに通過する場合があります。三角形を描画すると、1 つの連続したブロブではなく、いくつかの目立たないブロブが生成される場合があります。

于 2012-07-29T21:09:59.447 に答える