Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

BOIDS DE CRAIG REYNOLDS


Information sur la source

Description

Cliquez pour voir la capture en taille normale
c'est une simulation de vol d'oiseau en groupe (ou de banc de poisson)
Créé par Craig Reynolds, cette simulation se base sur un algo simple.
3 forces agissent sur chaque individu (boids):
- chaque boids aligne sa direction sur celle de ses voisins.
- chaque boids est attiré au centre de ses voisins
- mais chaque boids est repoussé par les autres pour éviter le surpeuplement

Enfin, une dernière force, classique attire les boids vers la souris.

Dans tout les cas, le boids ne réagis que par rapport aux voisins qu'il voie (distance max et angle de vu)
il ne voit pas les boids derrière lui ni s'ils sont trop loin.
 

Fichier Zip

Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip

Commentaires et avis

signaler à un administrateur
Commentaire de MAURICIO le 28/03/2008 14:46:24 10/10

Toujours aussi interessant comme source!
Le code est simple à comprendre mais son ensemble est bien plus difficile.
Bravo, magnifique!
A+

signaler à un administrateur
Commentaire de Lassal le 28/03/2008 14:57:58

Source hypnotique, le rendu est fort sympathique.

signaler à un administrateur
Commentaire de Caribensila le 28/03/2008 18:25:38 10/10

Superbe et étonnant. Comme d'hab avec Barbichette.

Une petite remarque, cependant :
La simulation ne reproduit pas vraiment le comportement d'un banc de poissons ou d'une nuée d'oiseaux. Une observation attentive de ce genre de phénomène nous montre que l'ensemble semble changer de direction "comme un seul homme", si on peut dire.
Pour les oiseaux, je ne sais pas comment ils font. Mais pour un banc de poissons, j'avais lu un article scientifique qui décrivait une découverte récente des biologistes. Les poissons ont une série de capteurs situés sur une ligne le long de leurs flancs. Ces capteurs sensoriels sont sensibles aux champs électro-magnétiques provoqués par la contraction des muscles de leur congénères. Et il semble bien que la cohésion et le comportement du banc soit liée à ces capteurs.

Bref. Si je raconte tout ça, c'est parce qu'il me semble que le code est facilement modifiable pour arriver à un comportement plus conforme à la réalité.
« un boid ne voit pas les boids derrière lui » semble être une erreur.
Peut-être que si tu as le temps et comme tu as "vécu" cet algo, peux-tu tenter de modifier cela et tester...

Ce commentaire "naturaliste" n'enlève rien à l'intérêt de ton post, bien sûr... Et dsl pour la longueur de l'intervention.

signaler à un administrateur
Commentaire de fbalien le 28/03/2008 21:36:10 10/10

excellent

signaler à un administrateur
Commentaire de barbichette le 28/03/2008 22:46:28

Alors, pour refléter un banc de poissons qui réagi d'un seul homme, mettre les constantes comme suit :
Align_attract=1; // la force d'alignement est la plus puissante
Angle_Vision=180; // un champs de vision à 360°

Sinon pour un essaim de mouche :
Separation_repuls=1;
Angle_Vision=140; // (soit 200° au total)

Enfin, une petite remarque pour ceux qui n'auraient pas compris:
un univers fermé est comme dans le vieux jeu astéroïde, un objet qui sort à droite revient par la gauche (et pareil pour le haut et le bas).

signaler à un administrateur
Commentaire de Caribensila le 28/03/2008 23:28:52

Merci.
...
Et t'as rien prévu pour simuler les bombes en ce qui concerne un bataillon de poilus qui monte à l'assaut en 14-18?

signaler à un administrateur
Commentaire de cantador le 29/03/2008 15:17:17

Pour ma part, l'effet est trés réaliste avec :
Align_attract=2;
Angle_Vision=180;

bravo barbichette !

signaler à un administrateur
Commentaire de japee le 30/03/2008 16:33:00 administrateur CS 10/10

Y'a plus qu'à en faire un screensaver...
C'est très intéressant de jouer avec les paramètres en constantes.
Bravo pour cet excellent code!

signaler à un administrateur
Commentaire de f0xi le 30/03/2008 23:06:07 administrateur CS 10/10

Trés jolie!

juste une petite optimisation a faire de rien du tout :

remplacer les 180/Pi par une constante histoire de gagner quelques cycles par ci par la.

const
  DTR = 180/PI;

signaler à un administrateur
Commentaire de barbichette le 30/03/2008 23:13:02

oui, il y a aussi, lors de l'affichage :
bx:=boides[i].x div 16;
by:=boides[i].y div 16;
bvx:=boides[i].vx div 16;
bvy:=boides[i].vy div 16;
et non une division par 10
puis dans formcreate :
x:=random(clientwidth*16);
y:=random(clientheight*16);
Car de compilateur va remplacer les div par des "sar si,4", et un décalage est mieux qu'un div...

signaler à un administrateur
Commentaire de cirec le 31/03/2008 12:57:35 administrateur CS 10/10

Voilà le genre de code que l'on a l'habitude de voir de ta part.

Bravo que dire de plus .... ben pas grand chose sauf peut être
pour ajouter une touche supplémentaire de réalité il serait bien que la souris joue le rôle de prédateur ce qui permettrait de rentrer dans le tas pour voir une réaction similaire à la réalité (comme un banc de poissons qui se fait chasser)

En tous cas un grand Bravo 10/10

signaler à un administrateur
Commentaire de barbichette le 31/03/2008 13:05:55

il me semble que de remplacer
Cursor_attract=300;
par
Cursor_attract=-300;
va provoquer une répulsion de la souris et non une attirance...

A essayer....

signaler à un administrateur
Commentaire de cirec le 31/03/2008 13:19:26 administrateur CS

Sauf que ça fait tout planter
en fait ça fonctionne un fois ils se séparent bien mais ne respecte plus les conditions !!!! et le prog plante violemment.

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

Simulation de touche [ par Amadeus ] Comment faire pour simuler l'appuie sur une touche, par exemple faire croire au prog que la touche Echap a été enfoncé.merci d'avance mowack v1.0 : simulation de vie de créatures aquatiques [ par sebrs1 ] salut à tous,voici ma nouvelle crétion, mowack, des créatures aquatiques qui doivent se reproduire, manger, se battre entre especes (bon sa c'est pas simulation et files d'attentes [ par ryadus ] je voudrai des informrations concernant les files d'attente et la simulation: exemple: etude de temps d'arret dans un carrefourmerci Simulation, graph, math... [ par ryadus ] Salut, je voudrais savoir si quelqu'un connais quelques chose sur la simulation, comment dessiner la courbe d'une fonction, sur l'optimisation, les fi simulation appui touche keybd_event ne suffit pas :) [ par noelemac ] Bonjour a tousJ'ai un soft qui tourne sous windows auquel je souhaiterai transmetttre des appuis touches clavier de manière logiciel.Ce soft ne tourne Problème de position de simulation de bouton d'une souris [ par ElecInfoLolo1 ] Salutj'ai trouvé sur le site de delphifr.com les fonctions qui permettent de simuler les touches d'une souris.Ces fonctions fonctionnent correctement, simulation billard simpliste..aidez un pauvre newbie à trouver son chemin [ par porrentruy ] salut tout le monde, je suis un newbie et je doit programmer une simulation de billard (simpliste) pour mon travail de matu... en fait un billard parf WebBrowser et simulation d'appui sur un bouton... [ par alexou09 ] Bonjour tout le monde! Je suis actuellement sur un projet , ou j'ai besoin de remplire un formulaire automatiquement. C'est pourquoi, je cherche a s simulation d'un compilateur [ par soulstreame ] tout simplement j'ai besoin de devolloper un programme qui lit une instructions arithmétique comme une chaîne de caractère ensuite je doit remplisser Simulation d'un billard [ par RankouZouhair ] bonjour,je dois rendre ce travail avant le 05/01/06, j'ai beau ch&#233;rch&#233; sur votre site mais je ne trouve pas merci de votre aide: <TABLE id=H


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,312 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.