transformPoints method

List<Offset> transformPoints(
  1. Set<Offset> points,
  2. Size size
)

Transforms initial grid into a polygon grid.

Implementation

List<Offset> transformPoints(Set<Offset> points, Size size) {
  final transformedList = <Offset>[];
  final orgList = points.toList();
  final rand = Random(userId.length);

  for (var i = 0; i < points.length; i++) {
    final orgDx = orgList[i].dx;
    final orgDy = orgList[i].dy;

    if (orgDx == 0 ||
        orgDy == 0 ||
        orgDx == size.width ||
        orgDy == size.height) {
      transformedList.add(Offset(orgDx, orgDy));
      continue;
    }

    final sign1 = rand.nextInt(2) == 1 ? 1 : -1;
    final sign2 = rand.nextInt(2) == 1 ? 1 : -1;

    final dx = sign1 * 0.6 * rand.nextInt(size.width ~/ columnCount);
    final dy = sign2 * 0.6 * rand.nextInt(size.height ~/ rowCount);

    transformedList.add(Offset(orgDx + dx, orgDy + dy));
  }

  return transformedList;
}