예제 #1
0
        listofagents[edge[0]].neighbors.append(listofagents[edge[1]])
        listofagents[edge[0]].desired_distances.append(edge[2])
        listofagents[edge[1]].neighbors.append(listofagents[edge[0]])
        listofagents[edge[1]].desired_distances.append(edge[2])

    # Execute the consensus algorithm in a distributed way
    for agent in listofagents:
        agent.draw(screen)
        agent.distance_based(dt)
        agent.neighbors = []

    # Draw the connected agents with a dashed line
    for edge in listofedges_and_distances:
        drawmisc.draw_dashed_line(screen, WHITE,
                                  (listofagents[edge[0]].pos[0],
                                   HEIGHT - listofagents[edge[0]].pos[1]),
                                  (listofagents[edge[1]].pos[0],
                                   HEIGHT - listofagents[edge[1]].pos[1]))

    clock.tick(fps)
    pygame.display.flip()

    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            endtime = pygame.time.get_ticks()
            pygame.quit()
            runsim = False

# Postprocessing

fig = pl.figure(0)
                            np.array([5.0, 0.0]))

# run simulation
pygame.init()
clock = pygame.time.Clock()
fps = 50
dt = 1.0 / fps
time = 0

runsim = True
while (runsim):
    screen.fill(BLACK)
    agentsi.draw(screen)
    agentdi.draw(screen)
    agentuni.draw(screen)
    drawmisc.draw_dashed_line(screen, WHITE, (0, screen.get_height() - 0),
                              (100, screen.get_height() - 100))
    agentsi.step_dt(np.array([30, 2]), dt)
    agentdi.step_dt(np.array([0, 0]), dt)
    agentuni.step_dt(0, 0, dt)
    clock.tick(fps)
    pygame.display.flip()

    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            endtime = pygame.time.get_ticks()
            pygame.quit()
            runsim = False

# Postprocessing
fig = pl.figure(0)
ax = fig.add_subplot(111)