begin process at 2008 05 09 18:25:29
1 168 779 membres
374 nouveaux aujourd'hui
13 951 membres club

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 ose pas poser une question, ça c'est une erreur !

BOIDS DE CRAIG REYNOLDS


Information sur la source

Description

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

Sources en rapport avec celle ci

  • 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

Appels d'offres

Pub



CalendriCode

Mai 2008
LMMJVSD
   1234
567891011
12131415161718
19202122232425
262728293031 

VS Express FR Gratuit !

VS Express en français et 100% gratuit !

Téléchargements