Polygon.regular constructor

Polygon.regular({
  1. required int sides,
  2. required double radius,
  3. required Point center,
})

Create a regular polygon with sides sides, inscribed in a circle of radius centered at center.

Implementation

factory Polygon.regular({
  required int sides,
  required double radius,
  required Point center,
}) {
  assert(sides >= 3);
  final verts = <Point>[];
  for (var i = 0; i < sides; i++) {
    final angle = 2 * pi * i / sides - pi / 2;
    verts.add(Point(
      center.x + radius * cos(angle),
      center.y + radius * sin(angle),
    ));
  }
  return Polygon(verts);
}