*/ public array $data = []; public function __construct( public float $x, public float $y, public float $radius, public float $gap = 0, public float $angle = 0, public float $spin = 0, public float $grow = 0, public float $growOnHit = 0, public float $openOnHit = 0, public float $minRadius = 4, public float $maxRadius = 10000, public float $thickness = 3, public string $color = '#ffffff', ) { } /** Is the direction $a (radians, from the centre) inside the gap? */ public function inGap(float $a): bool { if ($this->gap <= 0) { return false; } $d = fmod($a - $this->angle, 2 * M_PI); if ($d > M_PI) { $d -= 2 * M_PI; } elseif ($d < -M_PI) { $d += 2 * M_PI; } return abs($d) <= $this->gap / 2; } }