エージェント集合操作(生成)

make_agtset

引数の指定に当てはまるエージェントの集合を取得する。

make_agtset(agttype=None, space=None, layer=None, only_alive=False)

  • agttype - 指定するエージェント種別。指定しない場合は全てのエージェント種別。

  • space - 指定する空間。指定しない場合は全ての空間。

  • layer - 指定するレイヤ。指定しない場合は全てのレイヤ。

  • only_alive - killフラグが立っていないエージェントのみを指定するかどうか。初期値はFalse。

# エージェント種別personのエージェント集合を取得する
people = make_agtset(agttype=Universe.city.person)

# エージェント種別personのエージェントのうち、killフラグが立っていないエージェントの集合を取得する
people = make_agtset(agttype=Universe.city.person, alive=True) 

make_agtset_around_position

連続空間上の指定した位置から指定した範囲内にいるエージェントの集合を返す。

make_agtset_around_position(distance, space, x, y, layer, agttype=None)

  • distance - 指定する範囲の広さ。

  • space - 指定する空間。

  • x - 指定する位置のx座標。

  • y - 指定する位置のy座標。

  • layer - 指定するレイヤ。

  • agttype - 集める対象とするエージェント種別。初期値はNoneで、このとき全てのエージェント種別を対象とする。

※連続空間でのみ使用可能。

# 空間Universe.cityのレイヤ0の座標(25,30)から距離10以内に存在するエージェントの集合を取得する
group = make_agtset_around_position(10, Universe.city, 25, 30, 0)

# 空間Universe.cityのレイヤ0の座標(25,30)から距離10以内に存在するエージェントのうちUniverse.city.person種別のエージェントのみを取得する
people = make_agtset_around_position(10, Universe.city, 25, 30, 0, agttype=Universe.city.person)

make_agtset_around_position_sqgrid

四角格子空間上で、指定した位置から指定した範囲内にいるエージェントの集合を返す。

make_agtset_around_position_sqgrid(distance, space, x, y, layer, agttype=None, manhattan=False)

  • distance - 指定する範囲の広さ。

  • space - 指定する空間。

  • x - 指定する位置のx座標。

  • y - 指定する位置のy座標。

  • layer - 指定するレイヤ。

  • agttype - 集める対象とするエージェント種別。初期値はNoneで、このとき全てのエージェント種別を対象とする。

  • manhattan - Falseのときは指定範囲をチェビシェフ距離で、Trueのときはマンハッタン距離で定義する。初期値はFalse。

# 空間Universe.cityのレイヤ0の座標(25,30)からチェビシェフ距離で距離2以内に存在するエージェントの集合を取得する
group = make_agtset_around_position_sqgrid(2, Universe.city, 25, 30, 0)

# 空間Universe.cityのレイヤ0の座標(25,30)からマンハッタン距離で距離3以内に存在するエージェントのうちUniverse.city.person種別のエージェントのみを取得する
people = make_agtset_around_position(3, Universe.city, 25, 30, 0, agttype=Universe.city.person, manhattan=True)