Chcę wizualizować dwa różne algorytmy, które decydują czy jest nakładanie w kolekcji kręgów w płaszczyźnie w Javie:Jak wizualizować algorytm bez zmiany kodu tego algorytmu?
- O (n²) algorytm, który sprawdza każdą kombinację kół
- O (nlogn) algorytmu używającego linii przeciągnięcia
Czy istnieje sposób, aby pozwolić obiektowi klasy wizualizacji "nasłuchiwać" na obiekcie klasy algorytmu w taki sposób, aby mógł na przykład zobaczyć, kiedy algorytm wykonuje nakładanie się sprawdzić między parą okręgów i wie, kiedy zaktualizować wizualizację?
inny przykład: mogę zachować listę aktywnych kręgów (te, które przecinają linię przeciągnięcia) jako zmiennej algorytmu linii zamiatać i pozwolić innej klasy (klasa wizualizacji) dostać tej zmiennej. Ale w jaki sposób ta klasa będzie wiedzieć, kiedy lista zostanie zaktualizowana i musi zaktualizować wizualizację?
To tylko strategia, o której myślałem. Być może istnieją lepsze sposoby ...
Nie wiem, czy to rozważyłeś, ale mam na myśli tylko jedno słowo: Wielowątkowość. Jeden wątek algorytmu i jeden wątek wizualizacji? –
Zdecydowanie potrzebuję wielu wątków.Głównym problemem jest to, jak wątek wizualizacji musi odświeżyć? – aerod
Narysuj zdjęcie. (Wizualizuje go, nie modyfikuje kodu.) –