createRing static method

List<FreeHexagon> createRing({
  1. required FreeHexagon center,
  2. required double ringSize,
  3. double gap = 0.0,
  4. int startEdge = 0,
})

创建环形排列的六边形

center 中心六边形 ringSize 环中六边形的大小 gap 间隙 startEdge 从哪条边开始(默认0)

Implementation

static List<FreeHexagon> createRing({
  required FreeHexagon center,
  required double ringSize,
  double gap = 0.0,
  int startEdge = 0,
}) {
  final ring = <FreeHexagon>[];

  for (var i = 0; i < 6; i++) {
    final edgeIndex = (startEdge + i) % 6;
    final hexCenter = calculateAdjacentCenter(
      sourceHex: center,
      sourceEdge: edgeIndex,
      targetSize: ringSize,
      gap: gap,
      targetOrientation: center.orientation,
    );

    ring.add(
      FreeHexagon(
        id: '${center.id}_ring_$i',
        center: hexCenter,
        size: ringSize,
        orientation: center.orientation,
      ),
    );
  }

  return ring;
}