Table des matières

Vol d'une nuée d'oiseaux

On souhaite simuler le vol d'une nuée d'oiseaux et en particulier leur vol qui tend à devenir parallèle.

Modèle retenu

Attention, le dernier point nécessite des précautions. Considérons un oiseau b. Il parcourt tous ses voisins. Prenons un voisin v. On calcule donc l'écart v.angle - b.angle. Cet angle doit s'exprimer entre -180° et +180° (ou entre $-\pi$ et $\pi$ si vous êtes en radians)

Une fois la moyenne des écarts moy_ecart obtenue, on souhaite que b.angle augmente de moy_ecart , mais pas d'un coup. Une bonne façon de le faire est de se fixer un coefficient s et de faire le calcul b.angle += s*moy_ecart.

Pour s on choisit une valeur entre 0 et 1. Plus c'est proche de 1 plus c'est rapide. Il s'agit d'ajuster pour trouver une valeur qui produit un bon effet.

Des choix

J'ai choisi Rmax = 30, V = 2, s = 0.3.

On doit bien sûr représenter plusieurs oiseaux. Dans l'exemple en image, j'en ai mis N = 200. Avec un langage rapide comme Processing, on peut sans problème en mettre 1000, ce qui fait très bel effet.

On place ces oiseaux aléatoirement sur la fenêtre et avec une orientation initiale aléatoire aussi.

J'ai dessiner chaque oiseau avec un cercle de 5 pixels de diamètre et un trait pour donner son orientation.

À vous

Solution possible avec Processing.