Boids Bancs de Poissons et Vols d'Oiseaux Groupés

De
Publié par

Boids : Bancs de Poissons et Vols d'Oiseaux Groupés November 12, 2010 Laurent Orseau <> Antoine Cornuéjols <> 1 Introduction Un certain nombre d'espèces animales, commes les thons ou les étournaux, se dépla- cent souvent en groupes et forment des nuées ou des bancs denses qui semblent doués d'une conscience propre, commune, comme si tous ces animaux n'en faisaient qu'un. Ces mouvements de groupe sont parfois assez spectaculaires, notamment lorsque le nombre d'individus dans le banc ou la nuée atteint les centaines voire les milliers. Ils vont et viennent dans l'espace dans des mouvements majesteux, imprévisibles, sans but précis apparent, sans qu'aucun des individus ne soit le meneur, mais toujours groupés et d'un seul corps. D'où provient ce type de comportement ? Y a-t-il une conscience collective ou parmis le groupe y a-t-il un meneur invisible ? 1

  • board-draw

  • draw-circle board

  • boids

  • astres

  • règles exactes concernant le mouvement


Publié le : mardi 19 juin 2012
Lecture(s) : 29
Tags :
Source : agroparistech.fr
Nombre de pages : 5
Voir plus Voir moins

Boids : Bancs de Poissons et Vols d’Oiseaux
Groupés
November 12, 2010
LaurentOrseau<laurent orseau@agroparistech fr>
AntoineCornuéjols<antoine@lri fr>
1 Introduction
Un certain nombre d’espèces animales, commes les thons ou les étournaux, se dépla-
cent souvent en groupes et forment des nuées ou des bancs denses qui semblent doués
d’une "conscience" propre, commune, comme si tous ces animaux n’en faisaient qu’un.
Ces mouvements de groupe sont parfois assez spectaculaires, notamment lorsque le
nombre d’individus dans le banc ou la nuée atteint les centaines voire les milliers. Ils
vont et viennent dans l’espace dans des mouvements majesteux, imprévisibles, sans but
précis apparent, sans qu’aucun des individus ne soit le meneur, mais toujours groupés
et d’un seul corps.
D’où provient ce type de comportement ? Y a-t-il une "conscience collective" ou
parmis le groupe y a-t-il un meneur invisible ?
1
...Vol groupé d’étourneaux, souvent imprévisible.
De nombreuses espèces de poissons nagent groupés.
Il s’agit de comportements plus complexes que pour les termites, car ici les oiseaux
semblent agir de concert, comme par une volonté commune, alors que les termites ne
s’occupent pas les uns des autres, ils font leur petit travail dans leur coin.
Le projet d’aujourd’hui est de modéliser de tels bancs de poissons ou nuées d’oiseaux
sur un monde en grille à 2 dimensions. On appelle ca des Boids (Birds avec un accent
New-Yorkais Européen paraît-il).
2 Systèmesolaire
Pour décomposer le problème, dans un premier temps nous allons modéliser un sys-
tème solaire, où des planètes gravitent autour d’une étoile. Chaque planète et l’étoile
possèdent une masse, qui influe sur la gravitation des autres planètes et de l’étoile.
Malgré la différence apparente d’objectif, de nombreuses caractéristiques de ce
problème sont liées à celui des Boids, mais ce projet est plus simple.
2.1 Modélisation
Chaque astre est modélisé par une position en x et y, une vitesse en x et y ainsi qu’une
masse.
Parfce que nous faisons une simulation "temps réel", il n’est pas nécessaire de faire
de lourds calculs intégratifs pour mettre à jour les positions des astres.
Il suffit de calculer l’accélération instantanée de chaque astre à chaque instant, de
mettre à jour la vitesse en lui ajoutant cette accélération et de mettre à jour la position
en lui ajoutant la vitesse.
2Il s’agit évidemment d’une approximation car le temps est discrétisé, mais visuelle-
ment cela ne fait aucune différence (par contre si on devait prédire la position de Sat-
urne dans un an, cette simulation ne serait clairement pas adaptée).
Pour calculer l’accélération d’un astre, il faut savoir que :
• L’accélération d’un astre est la division de la somme des forces qui lui sont
appliquées par sa masse.
• L’astre A2 exerce sur l’astre A1 une force (d’attraction gravitationnelle) pro-
portionnelle au produit de leur masse divisé par le carré de la distance qui les
sépare. Cette force est pondérée par une constante gravitationnelle à définir, qui
permettra de paramétrer le système pour obtenir les comportements attendus.
• La direction de cette force est orientée de A1 vers A2.
Question1
Créez une fonction :
!
qui crée un astre avec sa position en x et en y, sa vitesse en x et en y, et sa masse.
Créez les fonctions accesseurs de ces différentes caractéristiques :
Question2
Créez une fonction :
!
qui renvoie une liste d’astres.
Question3
Créez une fenêtre graphique sans case mais de grande dimension :
Nous n’utiliserons pas la matrice sous-jacente ici.
Créez une fonction :
!
qui affiche tous les astres dans la fenêtre graphique. Vous pouvez utiliser,dansl’appel
à , la fonction :
!
3
thirdsecon)posyvoid?define)(afficher-m)mber?firstfiftposxboard-drawdefineboard())make-astremake-astrenumber?()xdefinenumber?fourt:(dboard-drawx(ronde))boardsboard?(400number?)number?)((hdefinemassevitx(listofhnumbervity?define))astre?(listof-circle(nuymak)e-boardvoid?1:1400:(ydefinenumber?monde(qui permet d’afficher un cercle centré sur , et de rayon .
Question4
Faites les fonctions nécessaires pour mettre à jour tous les astres et animer leur
déplacement.
Jouez sur les masses et la constante gravitationnelle pour obtenir un résultat satis-
faisant.
3 Boids
Une des caractéristiques "étranges" des boids est que bien que l’algorithme entier soit
totalement déterministe (hormis pour les conditions initiales), les boids semblent se
déplacer au hasard, sans symétrie et sans but apparents, comme un vol d’étourneaux
dansant un balai sans raison.
3.1 Règles
Le système solaire est une base pratique pour lesboids.
Les règles exactes concernant le mouvement desboids ne sont pas faciles à trouver,
aussi je vous livre mon interprétation :
• Unboid est caractérisé par une position en x et y, et une vitesse en x et y.
• Chaque boid a un champ de vision de rayon R. Il ne tient pas compte des boids
qui sont en dehors de son champ de vision.
• Il a aussi un angle de vision inférieur à 180 et ne peut pas voir au delà.
• Il est attiré inversemement proportionnellement par le centre de gravité desboids
qu’il voit.
• Il s’éloigne des boids qu’il voit proportionnellement à l’inverse du carré de la
distance qui les sépare.
• Il aligne petit à petit sa direction (vitesse en x et y) avec celle de ses voisins.
Les attractions, éloignements et alignements sont des forces qu’il faut considérer
comme des accélérations (à masse constante), qu’il faut donc calculer à chaque étape
et ajouter à la vitesse.
4
ynumber?rr:xDeux groupes deboids qui ne se déplacent pas en ligne droite. Le cercle est le champ
de vision du premierboid.
Question5
Décomposez bien le problème en plusieurs sous-problèmes et fonctions et roulez
petitsboids !
5

Soyez le premier à déposer un commentaire !

17/1000 caractères maximum.