本帖最后由 Ray 于 9-9-2025 17:23 编辑
Boids 是一个人工生命模拟程序,由 Craig Reynolds 在 1986 年提出。它通过为每个个体(称为 “boid”,发音为 “bird-oid”,意为“像鸟的物体”)设定几条简单的行为规则,来模拟鸟群、鱼群等生物群体的涌现行为。 其核心思想是:复杂的、看似智能的群体行为,源于个体遵循的几条简单规则。Boids 模型通常基于以下三个基本规则: 分离:避免与群体中的同伴相撞,即与离得太近的邻居保持距离。 对齐:调整自身方向,与周围邻居的平均飞行方向保持一致。 凝聚:向周围邻居的平均位置(即群体的中心)靠拢,避免掉队。
通过调整这些规则的权重,可以模拟出各种不同的群体运动模式。
我的代码在经典的三条规则之外增加了一些功能。
核心模拟Boid 类:定义了每个个体的属性和行为。
三条核心规则:
separation:分离规则。排斥力,防止 boid 挤在一起。 alignment:对齐规则。使 boid 与同类邻居的速度方向保持一致。 cohesion:凝聚规则。吸引力,使 boid 向同类邻居的中心点移动。
额外规则:
mouse_attraction:鼠标交互。boid 会受到鼠标光标吸引或排斥(取决于 mouse_strength 的正负)。 velocity_maintain:速度维持。确保 boid 的速度不会低于最小值,保持运动。 check_bounds:边界处理。boid 在接近模拟区域边界时会“反弹”。
图形与界面
可以在这里找到该项目的演示视频:BoidsSim
|