Exemple #1
0
def process():
    """ 
	Description: A function to communicate with the command line. This function is linked with the setup.py file.
	"""
    parser = ArgumentParser(description="The Boids Flocking Bird Simulation")
    parser.add_argument("--config", "-c", help="Config file", default="config.cfg")
    args = parser.parse_args()

    config = ConfigParser.ConfigParser()
    with open(args.config) as f:
        config.readfp(f)
        # pull boids config data
        count = config.getint("Boids", "count")
        position_limits = json.loads(config.get("Boids", "position_limits"))
        velocity_limits = json.loads(config.get("Boids", "velocity_limits"))
        # pull boid dynamics config data
        move_to_middle_strength = config.getfloat("Dynamics", "move_to_middle_strength")
        alert_distance = config.getfloat("Dynamics", "alert_distance")
        formation_flying_distance = config.getfloat("Dynamics", "formation_flying_distance")
        formation_flying_strength = config.getfloat("Dynamics", "formation_flying_strength")
        # pull display config data (for animation)
        xlim = tuple(json.loads(config.get("Display", "xlim")))
        ylim = tuple(json.loads(config.get("Display", "ylim")))
        frames = config.getint("Display", "frames")  # check if should be float!
        interval = config.getint("Display", "interval")  # check if can be float!

        boids = Boids(
            count,
            position_limits,
            velocity_limits,
            move_to_middle_strength,
            alert_distance,
            formation_flying_distance,
            formation_flying_strength,
        )
        boids.deploy_simulation(xlim, ylim, frames, interval)