From f05e263642d6a79e8af0194433f2377382cb792b Mon Sep 17 00:00:00 2001 From: Andi Gerken <andi.gerken@gmail.com> Date: Fri, 21 Mar 2025 16:45:49 +0100 Subject: [PATCH] Changed arcs to wedges for better display of zones --- src/robofish/io/file.py | 17 +++++++++++++---- tests/resources/valid_couzin_params.hdf5 | Bin 33648 -> 33648 bytes 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/src/robofish/io/file.py b/src/robofish/io/file.py index c45bb74..cc267cb 100644 --- a/src/robofish/io/file.py +++ b/src/robofish/io/file.py @@ -1099,6 +1099,7 @@ class File(h5py.File): zones = [] if render_zones: + fovs = [] for ei, e in enumerate(self.entities): zone_sizes_str = get_zone_sizes_from_model_str(self.attrs.get("guppy_model_rollout", "")) zone_sizes_attrs = get_zone_sizes_from_attrs(e) @@ -1110,10 +1111,14 @@ class File(h5py.File): fov = zone_sizes.get("fov", np.pi*2) fov = np.rad2deg(fov) zone_sizes.pop("fov", None) + fovs.append(fov) entity_zones = [] for zone_size in zone_sizes.values(): - entity_zones.append(matplotlib.patches.Arc((0,0), zone_size, zone_size, angle=0, theta1=-fov/2, theta2=fov/2, color=fish_colors[ei], alpha=0.3, fill=False)) + if fov >= 360: + entity_zones.append(matplotlib.patches.Circle((0, 0), zone_size, color=fish_colors[ei], alpha=0.3, fill=False)) + else: + entity_zones.append(matplotlib.patches.Wedge((0,0), zone_size, theta1=-fov/2, theta2=fov/2, color=fish_colors[ei], alpha=0.3, fill=False)) zones.append(entity_zones) zones_flat = [] @@ -1391,11 +1396,15 @@ class File(h5py.File): poses_trails = entity_poses[:, max(0, file_frame - trail) : file_frame] for i_entity in range(n_entities): for zone in zones[i_entity]: - zone.center = ( + + zone.set_center(( this_pose[i_entity, 0], this_pose[i_entity, 1], - ) - zone.angle = this_pose[i_entity, 2] * 180 / np.pi + )) + if fovs[i_entity] < 360: + ori_deg = np.rad2deg(this_pose[i_entity, 2]) + zone.theta1 = ori_deg - fovs[i_entity] / 2 + zone.theta2 = ori_deg + fovs[i_entity] / 2 if render_swarm_center: swarm_center[0].set_offsets(swarm_center_position[file_frame]) diff --git a/tests/resources/valid_couzin_params.hdf5 b/tests/resources/valid_couzin_params.hdf5 index e8c7ef32b4b929f0db806dadbfd266ab1eaca66b..506cdd1ae9df5a0438b2bcec9b47ffc016037515 100644 GIT binary patch delta 63 zcmey+#`K|$X@db5qtN7qoZ^halN~w58AZTsQ4o8w0T%~T0q<r<t~B0F5+)jqBAZPe O&YLodZe}gZ<^=#Qv=F5L delta 39 vcmey+#`K|$X@ddR<Oy6HOc!`J8zvv)-6Ub6!6>lV)Zx4-qu^%NvTR-eA}|dk -- GitLab