begin process at 2010 02 10 07:02:34
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Graphique

 > BOIDS DE CRAIG REYNOLDS

BOIDS DE CRAIG REYNOLDS


 Information sur la source

Note :
10 / 10 - par 6 personnes
10,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Graphique Classé sous :Craig Reynolds, boids, essain, simulation Niveau :Débutant Date de création :28/03/2008 Vu / téléchargé :3 138 / 247

Auteur : barbichette

Ecrire un message privé
Site perso
Commentaire sur cette source (13)
Ajouter un commentaire et/ou une note

 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

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Sources du même auteur

Source avec Zip Source avec une capture THREAD ET BITMAP (DESSIN AU CRAYON)
Source avec Zip Source avec une capture ÉCRAN DE VEILLE FEU D'ARTIFICE
Source avec Zip Source avec une capture MESSAGE EN FEU D'ARTIFICE
Source avec Zip Source avec une capture ENCORE LOUPÉ
Source avec Zip Source avec une capture JEU LOGICOLOR

 Sources de la même categorie

Source avec Zip Source avec une capture EFFET VITRE ET THUMBNAILS SOUS VISTA par Bacterius
Source avec Zip Source avec une capture ANAGLYPHEUR OU COMMENT VOIR EN RELIEF LES STÉRÉOSCOPES ANCES... par jfs59
Source avec Zip Source avec une capture DÉFORMER UNE IMAGE AUX DIMENSIONS D'UN QUADRANGLE QUELCONQUE... par FFCAST
Source avec Zip Source avec une capture THREAD ET BITMAP (DESSIN AU CRAYON) par barbichette
Source avec Zip Source avec une capture ÉCRAN DE VEILLE FEU D'ARTIFICE par barbichette

 Sources en rapport avec celle ci

Source avec Zip Source avec une capture UNE MACHINE À SOUS par debiars87
Source avec Zip Source avec une capture SIMULATION DE PLUSIEURS TIRAGES DU JEU DE JOKER (LOTTO) par bad_dark_spirit
Source avec Zip Source avec une capture SIMULATION CHUTE TARTINE BEURRÉE par snakehill
Source avec Zip Source avec une capture COLLISIONS DE BABALLES par barbichette

Commentaires et avis

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+

Commentaire de Lassal le 28/03/2008 14:57:58

Source hypnotique, le rendu est fort sympathique.

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.

Commentaire de fbalien le 28/03/2008 21:36:10 10/10

excellent

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).

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?

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 !

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!

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;

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...

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

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....

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

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
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

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,718 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales