radial_grid_between_radii

Function
radial_grid_between_radii(
    states: list[State],
    center: Point2D = Point2D(x=0, y=0),
    inner_radius: float = 50,
    outer_radius: float = 200,
    rings: int = 3,
    segments: int = 8,
    rotation: float = 0,
    alignment: ElementAlignment = <ElementAlignment.PRESERVE: 'preserve'>,
    element_rotation_offset: float = 0,
    element_rotation_offset_fn: Optional[Callable[[int, int, float], float]] = None
) -> list[State]

Arrange states in a radial grid with specified inner and outer radii.

Alternative specification to radial_grid() for users who think in terms of target outer radius rather than ring spacing. The rings will be evenly distributed between the inner and outer radii.

Parameters

states
List of states to arrange
center
Center point of the grid
inner_radius
Radius of innermost ring
outer_radius
Radius of outermost ring
rings
Number of concentric rings
segments
Number of angular segments per ring
rotation
Base rotation in degrees
alignment
How to align each element
element_rotation_offset
Additional rotation offset
element_rotation_offset_fn
Function(ring, seg, angle) -> rotation offset.
Raises
ValueError
If outer_radius <= inner_radius
ValueError
If rings < 1

Examples

# Grid from radius 50 to 200 with 4 rings
    radial_grid_between_radii(states, inner_radius=50, outer_radius=200, rings=4, segments=8)

    # Equivalent to radial_grid():
    # radial_grid_between_radii(states, inner_radius=50, outer_radius=200, rings=3)
    # == radial_grid(states, inner_radius=50, ring_spacing=75, rings=3)