は、私はJavaで面内で重複が円の集合であるかどうかを決定二つの異なるアルゴリズムを視覚化したい:アルゴリズムのコードを変更せずにアルゴリズムを視覚化するにはどうすればよいですか?
- 円
- O(nlognのすべての組み合わせをチェックするO(n²)アルゴリズム)アルゴリズムを使用するアルゴリズム
vizualizationクラスのオブジェクトをアルゴリズムクラスのオブジェクトに「リッスン」させる方法があります。たとえば、アルゴリズムがオーバーラップを実行しているときに参照できます一対の円の間をチェックし、視覚化を更新する時期を知っていますか?
他の例: アクティブなサークル(スイープラインと交差するもの)のリストをスイープラインアルゴリズムの変数として保持し、別のクラス(ビジュアルクラス)でその変数を取得させることができます。しかし、リストが更新され、視覚化を更新する必要があるとき、そのクラスはどのように知っていますか?
これは私が考えていた戦略です。多分良い方法があります...
あなたがそれを考慮しているかどうかはわかりませんが、私は念頭に置いています:マルチスレッド。 1つのアルゴリズムスレッドと1つの視覚化スレッド? –
私は間違いなく複数のスレッドが必要になります。主な問題は、ビジュアライゼーションスレッドがリフレッシュする必要があることをどのように知るかです。 – aerod
画像を描画します。 (可視化しますが、コードは変更しません)。 –