createLine static method
创建线性排列的六边形
start 起始六边形
direction 方向(边索引)
count 数量(不包括起始六边形)
sizes 每个六边形的大小列表
gap 间隙
Implementation
static List<FreeHexagon> createLine({
required FreeHexagon start,
required int direction,
required int count,
List<double>? sizes,
double gap = 0.0,
}) {
final line = <FreeHexagon>[start];
var currentHex = start;
for (var i = 0; i < count; i++) {
final size = sizes?[i] ?? start.size;
final nextCenter = calculateAdjacentCenter(
sourceHex: currentHex,
sourceEdge: direction,
targetSize: size,
gap: gap,
targetOrientation: start.orientation,
);
final nextHex = FreeHexagon(
id: '${start.id}_line_$i',
center: nextCenter,
size: size,
orientation: start.orientation,
);
line.add(nextHex);
currentHex = nextHex;
}
return line;
}