コード例 #1
0
ファイル: abm_boids.py プロジェクト: jomicobasi/simcx
def setup_two(n, make_movie=False):
    world = BoidsWorld()
    world.target = [400.0, 300.0]

    for i in range(n // 2):
        agent = Boid(random.randint(-100, 0),
                     random.randint(-100, 0),
                     0,
                     size=4,
                     color=('c3B', (255, 255, 255)),
                     radius=20)
        agent.body.velocity = np.random.uniform(10, 20, 2)
        world.add_agent(agent)

    for i in range(n // 2):
        agent = Boid(random.randint(900, 1000),
                     random.randint(-100, 0),
                     0,
                     color=('c3B', (255, 255, 255)),
                     size=4,
                     radius=50)
        agent.body.velocity = np.random.uniform(-10, -20, 2)
        world.add_agent(agent)

    world.bind_array()
    sim = simcx.PyafaiSimulator(world)
    vis = simcx.PyafaiVisual(sim, 800, 600)

    display = BoidsDisplay(800, 600, interval=0.04)
    display.add_simulator(sim)
    display.add_visual(vis)

    if make_movie:
        display.real_time = False
        display.start_recording('boids2.mp4')
コード例 #2
0
def setup():
    world = PolygonWorld(20, 20, 30, 200)
    sim = simcx.PyafaiSimulator(world)
    vis = simcx.PyafaiVisual(sim)
    display = simcx.Display()

    display.add_simulator(sim)
    display.add_visual(vis, 0, 0)
コード例 #3
0
def setup(equal_threshold):
    world = PolygonWorld(20, 20, 30, equal_threshold=equal_threshold)
    sim = simcx.PyafaiSimulator(world)
    vis = simcx.PyafaiVisual(sim)
    display = simcx.Display()

    display.add_simulator(sim)
    display.add_visual(vis, 0, 200)
    display.add_visual(SegregationPlot(sim, width=600, height=200))
コード例 #4
0
def setup(n, width=800, height=600):

    world = pyafai.World2D(width, height)
    sim = simcx.PyafaiSimulator(world)
    vis = simcx.PyafaiVisual(sim)
    display = simcx.Display(width, height, caption="Random Walkers")

    display.add_simulator(sim)
    display.add_visual(vis)

    # Create agents
    x = np.random.randint(10, width - 10, n)
    y = np.random.randint(10, height - 10, n)
    speed = np.random.randint(50, 100, n)
    angle = np.random.randint(0, 359, n)
    for i in range(n):
        ag = RandomWalker(x[i], y[i], speed[i], angle[i],
                          ('c3B',
                           (random.randint(0, 255), random.randint(
                               0, 255), random.randint(0, 255))), 5)
        world.add_agent(ag)