كمال غابتي · دورة · مجاني

البويدز والتجمع

محاكاة سرب أسماك بخوارزمية رينولدز في p5.js.

المفهوم

خوارزمية التجمع (رينولدز، 1987) تحاكي السلوك الجماعي بـ 3 قواعد: الفصل (تجنب الجيران القريبين)، المحاذاة (مطابقة اتجاههم)، التماسك (التحرك نحو مركز المجموعة).

الكود

// Boids: 50 agents with separation/alignment/cohesion
let boids = [];
function setup() {
  createCanvas(400, 280);
  for (let i = 0; i < 50; i++) boids.push({x:random(width),y:random(height),vx:random(-1,1),vy:random(-1,1)});
}
function draw() {
  background(11,15,20);
  for (let b of boids) {
    // Simplified: steer toward center + avoid close
    let cx=0,cy=0,n=0;
    for (let o of boids) { if(o!==b&&dist(b.x,b.y,o.x,o.y)<50){cx+=o.x;cy+=o.y;n++;}}
    if(n){b.vx+=(cx/n-b.x)*0.003;b.vy+=(cy/n-b.y)*0.003;}
    b.x+=b.vx;b.y+=b.vy; b.x=(b.x+width)%width;b.y=(b.y+height)%height;
    fill(55,227,195);noStroke();ellipse(b.x,b.y,5,5);
  }
}

للمزيد

استكشف الدورات المجانية الأخرى على صفحة التعلم، أو احجز مكالمة لمناقشة مشروعك.

هل تريد المزيد؟

← احجز مكالمة اكتشاف