Normalverteilung von Geruch in 2D?

... komplette Frage anzeigen

4 Antworten

Hierbei kannst du einfach den Abstand zum Geruchsverteiler berechnen und diesen dann mit einem bestimmten Faktor multiplizieren.

Steigt die Geruchskonzentration also pro Pixel um 5, so ist sie bei einem Pixel x genau 5dₓ groß, wobei dₓ den Abstand zum Geruchsverteiler darstellt.

Für die Ameisen kannst du mit Vektoren und dem Kreuzprodukt arbeiten.

Ich hoffe, ich konnte dir helfen; wenn du noch Fragen hast, kommentiere einfach.

LG Willibergi

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von Orney
11.06.2016, 22:02

Dann wäre der Abstand aber bei nem höheren Abstand größer... Also z.B erst 200-dx rechnen?

0
Kommentar von Orney
11.06.2016, 22:05

Danke, auch für die Idee mit den Vektoren... sonst hätte ich ziemlich kompliziert die Durchschnittsrichtung berechnen müssen...

0
Kommentar von Willibergi
11.06.2016, 22:13

Den Abstand kannst du ja einfach mit dem Satz des Pythagoras berechnen:

x₁: x-Wert des Geruchsverteilers
y₁: y-Wert des Geruchsverteilers
x₂: x-Wert der Ameise
y₂: y-Wert der Ameise

d = √(∆x + ∆y) = √(|x₁ - x₂| + |y₁ - y₂|)

Beispiel:

Geruchsverteiler: (143 | 5)
Ameise: (276 | 128)

d = √(|143 - 276| + |5 - 128|)
   = √(|-133| + |-123|)
   = √(133 + 123)
   = √256
   = 16

Du hast also den Abstand - den Rest kannst du mit Vektoren lösen.

Vektoren sind allgemein in der Spieleentwickler unheimlich wichtig!

LG Willibergi

0
Kommentar von Willibergi
11.06.2016, 22:22

Wie ich sehe, möchtest du, dass der Geruch näher beim Essen größer ist - irgendwie logisch ^^.

Bei etwas derartigem würde ich eine Formel der Art

|d|⁻¹ = 1/|d|

bevorzugen.

Den Exponenten kannst du natürlich selbst wählen.

Ist der Betrag zwischen 0 und 1, so steigt die Geruchsintensität (der x-Wert) schnell, ist er größer als 1, steigt sie langsam.

Was du nimmst, bleibt dir überlassen - ich finde, x⁻¹ ist ein gutes Verhältnis. ^^

LG Willibergi

0

Die eigentliche Frage wurde mittlerweile ja gelöst, wie es mir scheint. Ich weiß jetzt natürlich nicht, was genau Dein Ziel war, aber wenn Dich das Verhalten von "Ameisen" in Abhängigkeit von Geruchsstoffen o.Ä. interessiert, kannst Du Dich auch mal mit netlogo beschäftigen. Das ist ein Simulationsprogramm genau für solche Situationen.

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von Orney
12.06.2016, 11:13

Ich schaus mir mal an. Benutze übrigens Processing, das auch für solche Simulationen gedacht ist

0

Hm also soll der User dann die Möglichkeit haben an gewissen Stellen "essen" zu setzen und das Programm errechnet dann die neue geruchsverteilung und die Ameisen folgen dem dann oder wie?

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von Orney
11.06.2016, 22:00

Ja ungefähr. Mache das Programm nur, um wieder ins Programmieren reinzukommen. Kann sich in alle Richtungen bewegen

0
Kommentar von RageMode
11.06.2016, 22:01

Okay, grad hat ja einer schon sehr gut erklärt wie man das am besten löst ;)

0

Ich verstehe nicht genau, was du meinst? Wieso summierst du nicht einfach die Werte?

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von Orney
11.06.2016, 22:07

Ich möchte ja, dass der Geruch näher beim Essen stärker ist

0