Voglio di visualizzare due diversi algoritmi che decidono se c'è sovrapposizione in una collezione di cerchi in un piano in Java:Come visualizzare un algoritmo senza modificare il codice di quell'algoritmo?
- un algoritmo O (n²) che controlla ogni combinazione di cerchi
- un O (nlogn) algoritmo utilizzando una linea di sweep
c'è un modo per lasciare che un oggetto di una classe vizualization 'ascoltare' a un oggetto della classe algoritmo in modo che si può per esempio vedere quando l'algoritmo sta eseguendo una sovrapposizione controllare tra una coppia di cerchi e sapere quando aggiornare la visualizzazione?
altro esempio: Posso mantenere l'elenco dei cerchi attivi (quelli che intersecano la linea di sweep) come una variabile dell'algoritmo della linea di scorrimento e lasciare che un'altra classe (classe di visualizzazione) ottenga quella variabile. Ma come farà la classe a sapere quando la lista viene aggiornata e deve aggiornare la visualizzazione?
Questa è solo la strategia che stavo pensando. Forse ci sono modi migliori ...
Non so se lo avete preso in considerazione, ma ho solo una parola in testa: Multithreading. Un thread di algoritmo e un thread di visualizzazione? –
Avrò sicuramente bisogno di più thread.Il problema principale è: in che modo il thread di visualizzazione sa che deve essere aggiornato? – aerod
Disegna una foto. (Visualizzalo. Non modifica il codice.) –