# 空間操作 ## get_agt_direction エージェント1から見たエージェント2の角度を返す。空間がループする場合は、最短距離として求められる方向の角度を返す。 **get_agt_direction**(agt1, agt2) - **agt1** - エージェント1 - **agt2** - エージェント2 ``` # taroから見たhanakoの角度を取得する d = get_agt_direction(taro, hanako) ``` ## get_direction 地点1から見た地点2の角度を返す。空間がループする場合は、最短距離として求められる方向の角度を返す。 **get_direction**(x1, y1, x2, y2, space) - **x1** - 地点1のx座標 - **y1** - 地点1のy座標 - **x2** - 地点2のx座標 - **y2** - 地点2のy座標 - **space** - 対象となる空間 ``` # 空間Universe.cityにおいて、座標(1,1)から見た座標(10, 15)の角度を取得する d = get_direction(1, 1, 10, 15, Universe.city) ``` ## get_height_space 指定された空間の縦幅を取得する。 **get_height_space**(space) - **space** - 空間 ``` # 空間Universe.cityが50×50の時50をdに代入 d = get_height_space(Universe.city) ``` ## get_layer_space 指定された空間のレイヤr数を取得する。 **get_layer_space**(space) - **space** - 空間 ``` # 空間Universe.cityのlayerが1の時dに1を代入 d = get_layer_space(Universe.city) ``` ## get_ride_space 指定されたエージェント種別が乗っている空間を取得する。 **get_ride_space**(agttype) - **agttype** - エージェント種別 ``` # エージェント種別Universe.city.taroが乗っている空間をdに代入 d = get_ride_space(Universe.city.taro) ``` ## get_width_space 指定された空間の横幅を取得する。 **get_width_space**(space) - **space** - 空間 ``` # 空間Universe.cityが50×50の時50をdに代入 d = get_width_space(Universe.city) ``` ## measure_agt_distance 連続空間上でエージェント間の距離を取得する。 **measure_agt_distance**(agt1, agt2) - **agt1** - 1つ目のエージェント - **agt2** - 2つ目のエージェント ※連続空間でのみ使用可能。 ``` # エージェントtaroとhanakoの距離を取得する distance = measure_agt_distance(taro, hanako) ``` ## measure_agt_distance_sqgrid 四角格子空間上でエージェント間の距離を取得する。 **measure_agt_distance_sqgrid**(agt1, agt2, manhattan=False) - **agt1** - 1つ目のエージェント - **agt2** - 2つ目のエージェント - **manhattan** - Falseのときは距離をチェビシェフ距離で、Trueのときはマンハッタン距離で定義する。初期値はFalse。 ``` # エージェントtaroとhanakoの距離をチェビシェフ距離で取得する distance = measure_agt_distance_sqgrid(taro, hanako) # エージェントtaroとhanakoの距離をマンハッタン距離で取得する distance = measure_agt_distance_sqgrid(taro, hanako, manhattan=True) ``` ## measure_distance 連続空間上で2地点間の距離を取得する。 **measure_distance**(x1, y1, x2, y2, space) - **x1** - 1地点目のx座標 - **y1** - 1地点目のy座標 - **x2** - 2地点目のx座標 - **y2** - 2地点目のy座標 - **space** - 対象とする空間 ※連続空間でのみ使用可能。 ``` # 空間Universe.city上で座標(1, 1)と(25, 30)の距離を取得する distance = measure_distance(1, 1, 25, 30, Universe.city) ``` ## measure_distance_sqgrid 四角格子空間上で2地点間の距離を取得する。 **measure_distance_sqgrid**(x1, y1, x2, y2, space, manhattan=False) - **x1** - 1地点目のx座標 - **y1** - 1地点目のy座標 - **x2** - 2地点目のx座標 - **y2** - 2地点目のy座標 - **space** - 対象とする空間 - **manhattan** - Falseのときは距離をチェビシェフ距離で、Trueのときはマンハッタン距離で定義する。初期値はFalse。 ``` # 空間Universe.city上で座標(1, 1)と(25, 30)の距離をチェビシェフ距離で取得する distance = measure_distance(1, 1, 25, 30, Universe.city) # 空間Universe.city上で座標(1, 1)と(25, 30)の距離をマンハッタン距離で取得する distance = measure_distance(1, 1, 25, 30, Universe.city, manhattan=True) ``` ## specify_loop 指定した空間のループ設定を取得する。 **specify_loop**(space) - **space** - 空間 ``` # 空間Universe.cityがループする空間なら、dにTrueを代入、ループしない空間ならFalseを代入する d = specify_loop(Universe.city) ``` ## specify_space_type 指定した空間の種別を取得する。
(連続空間は0、四角格子空間は1を返す) **specify_space_type**(space) - **space** - 空間 ``` # 空間Universe.cityが連続空間ならdに0を代入、四角格子空間なら1を代入する d = specify_space_type(Universe.city) ```