Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Software-Projekte der Mitglieder (https://www.delphipraxis.net/26-software-projekte-der-mitglieder/)
-   -   Achtung sinnfrei! Vogelsimulation (https://www.delphipraxis.net/94969-achtung-sinnfrei-vogelsimulation.html)

guidok 28. Jun 2007 18:00


Achtung sinnfrei! Vogelsimulation
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo,

um mir die Zeit etwas zu vertreiben habe ich mich daran gemacht einen Schwarm Vögel zu programmieren.

Anbei mein Ergebnis.

Jeder Vogel ist ein Object, das einfache Regeln befolgt:

1. Er versucht immer dahin zu fliegen, wo am meisten Vögel sind.
2. Er versucht einen gewissen Mindestabstand einzuhalten (das klappt nicht so gut).

Dazu kommen noch ein paar zufallsbasierte Richtungswechsel und eine begrenzte "Sichtweite" eines Vogels.

Bin erst mal ganz zufrieden damit, auch wenn die Geschwindigkeit nicht ganz berauschend ist, so dass ich die Anzahl nicht weiter erhöhen kann. Wäre interessant nach einem schnellen Weg zu suchen, um die o.g. Kriterien zu erfüllen. Vielleicht hat ja jemand Lust dazu?

turboPASCAL 28. Jun 2007 20:17

Re: Achtung sinnfrei! Vogelsimulation
 
Hi,
  • ist ja nett
  • lade das Bild der Wolken als JPG in dein Programm
  • arbeite mit einem Offscreenbitmap auf den du deine Bitmaps zeichnest und gib sie zB im FormPaint
    wiesder aus (Antiflacker & Performce)
  • du verwendest keinen Timer ? lässt du im ApplicationEventsIdle zeichnen ?
    das Programm verursacht eine nahezu 100%tige Auslastung der CPU.

guidok 29. Jun 2007 06:06

Re: Achtung sinnfrei! Vogelsimulation
 
Ich verwende einen Timer, allerdings auf ein sehr kurzes Intervall gesetzt. Die Berechnung der Abstände und Richtungen für die Tierchen verschlingt schon recht viel Zeit. Dafür muss ich mir mal einen anderen Ansatz überlegen.

Das Bild ist nur ein kleines optisches Schmankerl am Ende, obwohl du natürlich recht hast: es kostet jede Menge Rechenzeit (ist da JPEG besser?) und es flackert.

vlees91 29. Jun 2007 07:23

Re: Achtung sinnfrei! Vogelsimulation
 
Wie wäre es die Vögel auch mal in Formationen fliegen zu lassen?

Luckie 29. Jun 2007 07:30

Re: Achtung sinnfrei! Vogelsimulation
 
Oder dem Mauszeiger folgen zu lassen?


Zitat:

Zitat von guidok
Wäre interessant nach einem schnellen Weg zu suchen, um die o.g. Kriterien zu erfüllen. Vielleicht hat ja jemand Lust dazu?

Dann solltest du eventuell die Sourcen mitveröffentlichen.

guidobrose 29. Jun 2007 07:31

Re: Achtung sinnfrei! Vogelsimulation
 
Formationen?

Ich will die Vögel ja nicht konkret in eine bestimmte Richtung lenken, also so eine Art Film ablaufen lassen, sondern die Bewegungen ergeben sich aus einfachen Grundregeln, die für jeden einzelenen Vogel gültig sind.

Ich hab mir allerdings auch schon überlegt, dass es wohl noch eine Art "gerichtete" Komponente geben müsste, z.B. eine dritte Regel, die besagt, dass alle Vögel versuchen sollen, sich der Flugrichtung der anderen anzupassen. Natürlich ohne die Regeln 1 und 2 zu verletzen.

Gut wäre es auch unterschiedliche Geschwindigkeiten für die Vögel einzuführen, kann ich aber nicht, weil dann alles zu langsam geht.

Zunächst müsste ich mal die Regeln 1 und 2 auf eine simple und schnelle Art und Weise implementieren.

Tormentor32 29. Jun 2007 07:33

Re: Achtung sinnfrei! Vogelsimulation
 
Hast du 2 Accounts?

guidobrose 29. Jun 2007 07:53

Re: Achtung sinnfrei! Vogelsimulation
 
Ups, ja. Das eine ist mein Account auf der Arbeit und ich wollte die erstens nicht vermischen, was nun doch passiert ist und zweitens wusste ich daheim das Passwort nicht mehr (Fluch der automatischen Anmeldung).

divBy0 29. Jun 2007 08:33

Re: Achtung sinnfrei! Vogelsimulation
 
Hi!

Nette Idee! Postest du hier auch die Sourcen?

Gruß
Marc

alzaimar 29. Jun 2007 09:20

Re: Achtung sinnfrei! Vogelsimulation
 
Liste der Anhänge anzeigen (Anzahl: 1)
Vor 150 Jahren (geschätzt :mrgreen: ) habe ich das hier irgendwo gefunden. Ein sehr schönes, beinahe wissenschaftliches Tool.


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:21 Uhr.
Seite 1 von 3  1 23      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz