Hallo,
ich bin neu hier im Forum und gerade dabei eine Boids-Simulation in pygame zu schreiben. die Visualisierung klappt schon, aber ich weiß nicht, wie die einzelnen Boids ihre Umgebung "scannen" können. Muss ich für jeden Boid die Pixel in einem Radius prüfen (stelle ich mir relativ rechenintensiv vor), oder gibt es eine Möglichkeit einen unsichtbaren Kreis zu erstellen und dann alle darunterliegenden Elemente zu listen.
Ich bin über jeden Vorschlag dankbar
@Wuschli: Man würde wohl eher ein von der Visualisierung unabhängiges Datenmodell benutzen, statt irgendwelche Information wieder aus den Pixeln der Darstellung zu holen.
Meine andere Idee wäre für jeden Agenten die Position der anderen Agenten-Instanzen auszulesen und dann die Entfernung zu checken. Wie ist denn die Performence bei ca. 50 Agenten für jeden die Position der anderen auszulesen? Lohnt es sich da eine Liste mit allen Positionen anzulegen, die jeden Frame aktualisiert wird?
Wenn ich ne Liste hätte müsste nicht jeder Boid auf jeden anderen Boid zugreifen, sondern nur auf eine Liste. Ich weiß aber nicht in wie weit das sinnvoll ist.
@Wuschli: Dann wäre die Information redundant vorhanden und es bestünde die Gefahr, dass die Werte in beiden Datenstrukturen auseinander laufen.
Solange es sich nicht um algorithmische Verbesserungen handelt, die sich in verschiedenen Klassen in der O()-Notation niederschlagen, sollte man nicht anfangen "Verbesserungen" an Dingen vorzunehmen bei denen man nicht durch Messungen/Profiling weiss, dass sie überhaupt signifikant zur Laufzeit beitragen. Im günstigsten Fall verschwendet man einfach nur Zeit bei der "Optimierung" und im ungünstigsten Fall wird das Programm dadurch langsamer statt schneller.