From e59ed06c0b6ca49a7482147016ca341b26a98a21 Mon Sep 17 00:00:00 2001 From: Joris Vincent Date: Mon, 7 Nov 2022 16:45:04 +0100 Subject: [PATCH] Resolve resolution for disc_and_rings --- stimuli/components/circular.py | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/stimuli/components/circular.py b/stimuli/components/circular.py index fa749544..f5fd81f5 100644 --- a/stimuli/components/circular.py +++ b/stimuli/components/circular.py @@ -1,5 +1,6 @@ import numpy as np -from stimuli.utils import degrees_to_pixels, resize_array + +from stimuli.utils import resize_array, resolution def disc_and_rings( @@ -36,8 +37,23 @@ def disc_and_rings( A 2d-array with disc and rings """ + # Check visual_size + if visual_size is not None: + if visual_size < np.max(radii): + raise ValueError( + f"Largest radius {np.max(radii)} does not fit in visual size {visual_size}" + ) + else: + visual_size = 2 * np.max(radii) + + # Resolve resolution + shape, visual_size, ppd = resolution.resolve(shape, visual_size, ppd) + # Convert radii to pixels - radii_px = degrees_to_pixels(radii, ppd) + radii_px = [] + for radius in radii: + radius_px, _, _ = resolution.resolve_1D(length=None, visual_angle=radius, ppd=ppd[0]) + radii_px.append(radius_px) # Create stimulus at 5 times size to allow for supersampling antialiasing if shape is None: