类鸟群Boids——仿真鸟群 (python实现添加个体、驱散、避障等)

工作原理 :
       模拟类鸟群的三大核心规则如下:
       1)分离:保持类鸟个体之间的最小距离;
       2)列队:让每个类鸟个体指向其局部同伴的平均移动方向;
       3)内聚:让每个类鸟个体朝其局部同伴的质量中心移动。
类鸟群模拟也可以添加其他规则,如避开障碍物,或受到打扰时驱散鸟群等...

分析:
    对于群体中的所有类鸟个体,做以下几件事:
    • 应用三大核心规则;
    • 应用所有附加规则;
    • 应用所有边界条件。
    • 更新类鸟个体的位置和速度。
    • 绘制新的位置和速度。

设置功能:

  1)鼠标点击左键:添加个体鸟

  2)鼠标点击右键:驱散鸟群

  3)避障

代码如下:

import sys, argparse
import math
import numpy as np
import matplotlib.pyplot as plt   
import matplotlib.animation as animation
from scipy.spatial.distance import squareform, pdist, cdist  #计算点之间的距离
from numpy.linalg import norm
from matplotlib.colors import ListedColormap
import matplotlib.patches as patches

width, height = 640, 480   #设置屏幕上模拟窗口的宽度和高度

class Boids:
    def __init__(self, N):
        """ initialize the Boid simulation"""
      
  • 3
    点赞
  • 43
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值