arrangeInCircle static method

List<NmGraphNodeData> arrangeInCircle(
  1. List<NmGraphNodeData> nodes, {
  2. Offset center = const Offset(400, 300),
  3. double radius = 200,
})

Arrange nodes in a circle.

Implementation

static List<NmGraphNodeData> arrangeInCircle(List<NmGraphNodeData> nodes, {Offset center = const Offset(400, 300), double radius = 200}) {
  final result = <NmGraphNodeData>[];

  for (var i = 0; i < nodes.length; i++) {
    final angle = (2 * math.pi * i) / nodes.length - math.pi / 2;
    final x = center.dx + radius * math.cos(angle);
    final y = center.dy + radius * math.sin(angle);

    result.add(nodes[i].copyWith(position: Offset(x, y)));
  }

  return result;
}