Boidy Reynolds`a

advertisement
Boidy Reynolds’a
Craig W. Reynolds - Biografia
ur. 15 marca 1953 w Chicago;
Boidy Reynolds’a
Craig W. Reynolds - Biografia
ur. 15 marca 1953 w Chicago;
ukończył Massachusetts Institute of Technology;
Boidy Reynolds’a
Craig W. Reynolds - Biografia
ur. 15 marca 1953 w Chicago;
ukończył Massachusetts Institute of Technology;
programista i grafik komputerowy;
Boidy Reynolds’a
Craig W. Reynolds - Biografia
ur. 15 marca 1953 w Chicago;
ukończył Massachusetts Institute of Technology;
programista i grafik komputerowy;
pracował m.in. dla Eletronic Arts oraz DreamWorks Animation;
Boidy Reynolds’a
Craig W. Reynolds - Biografia
ur. 15 marca 1953 w Chicago;
ukończył Massachusetts Institute of Technology;
programista i grafik komputerowy;
pracował m.in. dla Eletronic Arts oraz DreamWorks Animation;
animacje filmowe m.in. Batman Returns;
Boidy Reynolds’a
Craig W. Reynolds - Biografia
ur. 15 marca 1953 w Chicago;
ukończył Massachusetts Institute of Technology;
programista i grafik komputerowy;
pracował m.in. dla Eletronic Arts oraz DreamWorks Animation;
animacje filmowe m.in. Batman Returns;
w 1986 roku powstaje oprogramowanie „Boids” symulujące
zachowania stadne;
Boidy Reynolds’a
Craig W. Reynolds - Biografia
ur. 15 marca 1953 w Chicago;
ukończył Massachusetts Institute of Technology;
programista i grafik komputerowy;
pracował m.in. dla Eletronic Arts oraz DreamWorks Animation;
animacje filmowe m.in. Batman Returns;
w 1986 roku powstaje oprogramowanie „Boids” symulujące
zachowania stadne;
animacja „Stanley and Stella in: Breaking the Ice” (1987)
Boidy Reynolds’a
Czym są boidy:
Boidy - termin wymyślony przez Craig’a Reynolds’a na określenie
wirtualnych obiektów, które przemieszczają się w stadach. Ich zachowanie
jest łudząco podobne do naturalnego zachowania się stada ptaków,
ławicy ryb itp.
Boidy Reynolds’a
Reguły postępowania boidów
boid dopasowywuje swoją prędkość i kierunek lotu do sąsiednich
boidów;
Boidy Reynolds’a
Reguły postępowania boidów
boid dopasowywuje swoją prędkość i kierunek lotu do sąsiednich
boidów;
boid stara się być w środku grupy sąsiednich boidów;
Boidy Reynolds’a
Reguły postępowania boidów
boid dopasowywuje swoją prędkość i kierunek lotu do sąsiednich
boidów;
boid stara się być w środku grupy sąsiednich boidów;
boid zachowuje bezpieczną odległość od sąsiednich boidów;
Boidy Reynolds’a
Reguły postępowania boidów
boid dopasowywuje swoją prędkość i kierunek lotu do sąsiednich
boidów;
boid stara się być w środku grupy sąsiednich boidów;
boid zachowuje bezpieczną odległość od sąsiednich boidów;
boid unika przeszkód.
Własności boidów
Boid może odłączyć się od stada, jeżeli:
ucieka przed drapieżnikiem;
Sąsiadami boida mogą być inne boidy, przeszkody, pożywienie lub
drapieżniki znajdujące się w zasięgu boida.
W przestrzeni dwuwymiarowej boid jest opisany przez:
Własności boidów
Boid może odłączyć się od stada, jeżeli:
ucieka przed drapieżnikiem;
poszukuje pożywienia.
Sąsiadami boida mogą być inne boidy, przeszkody, pożywienie lub
drapieżniki znajdujące się w zasięgu boida.
W przestrzeni dwuwymiarowej boid jest opisany przez:
Własności boidów
Boid może odłączyć się od stada, jeżeli:
ucieka przed drapieżnikiem;
poszukuje pożywienia.
Sąsiadami boida mogą być inne boidy, przeszkody, pożywienie lub
drapieżniki znajdujące się w zasięgu boida.
W przestrzeni dwuwymiarowej boid jest opisany przez:
współrzędne x i y;
Własności boidów
Boid może odłączyć się od stada, jeżeli:
ucieka przed drapieżnikiem;
poszukuje pożywienia.
Sąsiadami boida mogą być inne boidy, przeszkody, pożywienie lub
drapieżniki znajdujące się w zasięgu boida.
W przestrzeni dwuwymiarowej boid jest opisany przez:
współrzędne x i y;
prędkości vx i vy .
Boidy Reynolds’a
Wyszukiwanie sąsiadów boida:
Sprawdzenie, czy dany element e znajduje się w bezpośrednim sąsiedztwie
boida b przebiega w następujący sposób:
sprawdzenie odległości:
p
(e.x − b.x)2 + (e.y − b.y )2 < d
(1)
Boidy Reynolds’a
Wyszukiwanie sąsiadów boida:
Sprawdzenie, czy dany element e znajduje się w bezpośrednim sąsiedztwie
boida b przebiega w następujący sposób:
sprawdzenie odległości:
p
(e.x − b.x)2 + (e.y − b.y )2 < d
(1)
jeżeli odległość jest większa od wartości d to element nie jest
sąsiadem boida. Jeżeli nierówność jest spełniona przechodzimy do
dalszych kroków.
Boidy Reynolds’a
Wyszukiwanie sąsiadów boida:
obliczenie kąta pod jakim boid się porusza
k1 = arc tg(
b.vy
)
b.vx
(2)
Boidy Reynolds’a
Wyszukiwanie sąsiadów boida:
obliczenie kąta pod jakim boid się porusza
k1 = arc tg(
b.vy
)
b.vx
(2)
obliczenie kąta odcinka boid - element
k2 = arc tg(
e.y − b.y
)
e.x − b.x
(3)
Boidy Reynolds’a
Wyszukiwanie sąsiadów boida:
obliczenie wartości bezwzględnej kątów k1 i k2 i sprawdzenie, czy
jest ona mniejsza od r:
Boidy Reynolds’a
Definicja:
Boid dopasowywuje swoją prędkość i kierunek lotu do sąsiednich boidów.
Boidy Reynolds’a
Pierwsza reguła:
obliczenie prędkości średniej vx i vy wszystkich sąsiadów boida
Boidy Reynolds’a
Pierwsza reguła:
obliczenie prędkości średniej vx i vy wszystkich sąsiadów boida
modyfikacja prędkości boida w zależności od wagi zmiany
Boidy Reynolds’a
Pierwsza reguła:
obliczenie prędkości średniej vx i vy wszystkich sąsiadów boida
modyfikacja prędkości boida w zależności od wagi zmiany
b.vx = b.vx + (waga ∗ (sredniavx − b.vx))
(4)
Boidy Reynolds’a
Pierwsza reguła:
obliczenie prędkości średniej vx i vy wszystkich sąsiadów boida
modyfikacja prędkości boida w zależności od wagi zmiany
b.vx = b.vx + (waga ∗ (sredniavx − b.vx))
(4)
b.vy = b.vy + (waga ∗ (sredniavy − b.vy ))
(5)
Boidy Reynolds’a
Definicja:
Boid stara się być w środku grupy sąsiednich boidów.
obliczenie średniej odległości od sąsiednich boidów;
modyfikacja prędkości względem każdego z sąsiadów
Boidy Reynolds’a
Druga reguła:
odl =
p
(s.x − b.x)2 + (s.y − b.y )2
odl − odlsr
)
odl
odl − odlsr
b.vy = b.vy + waga ∗ ((s.y − b.y ) ∗
)
odl
b.vx = b.vx + waga ∗ ((s.x − b.x) ∗
gdzie:
odl - odległość boida od sąsiada;
odlsr - odległość średnia;
b - boid modyfikowany;
s - sąsiad modyfikowanego boida
(6)
(7)
(8)
Trzecia reguła
Definicja:
Boid zachowuje bezpieczną odległość od sąsiednich boidów.
boid musi się oddalić od sąsiedniego boida, jeżeli odległość jest
mniejsza niż ustalona wcześniej minimalna odległość
Boidy Reynolds’a
Trzecia reguła:
(s.x − b.x) ∗ odlmin
− (s.x − b.x))
odl
(s.y − b.y ) ∗ odlmin
b.vy = b.vy − waga ∗ (
− (s.y − b.y ))
odl
gdzie:
odl - odległość boida od sąsiada;
odlmin - ustalona odległość minimalna;
b.vx = b.vx − waga ∗ (
(9)
(10)
Czwarta reguła:
Definicja:
Boid unika przeszkód.
Boidy Reynolds’a
Biblioteka OpenSteer
implementacja w języku C++;
Boidy Reynolds’a
Biblioteka OpenSteer
implementacja w języku C++;
projekt open-source;
Boidy Reynolds’a
Biblioteka OpenSteer
implementacja w języku C++;
projekt open-source;
możliwość wprowadzenia zachowań stadnych do gier i animacji;
Boidy Reynolds’a
Biblioteka OpenSteer
implementacja w języku C++;
projekt open-source;
możliwość wprowadzenia zachowań stadnych do gier i animacji;
możliwość pisania dodatków do aplikacji OpenSteerDemo (OpenGL)
dostarczanej z biblioteką.
Boidy Reynolds’a
Programy:
OpenSteerDemo;
Boidy Reynolds’a
Programy:
OpenSteerDemo;
Boptaki;
Boidy Reynolds’a
Programy:
OpenSteerDemo;
Boptaki;
3D Boids;
Boidy Reynolds’a
Programy:
OpenSteerDemo;
Boptaki;
3D Boids;
Java Boids Simulator.
Download