Я использую fabric Но в данном случае фреймворк не важен
Например такой алгоритм grid = 100 / 16
for i = 0; i < (canvasWidth / grid); i++
Line([ i * grid, 0, i * grid, canvasHeight
Line([ 0, i * grid, canvasWidth, i * grid
При этом получим сетку с шагом 6,25
И надо еще линиями другого цвета разбить эти 6,25 / 5
Не получается ровно Ровно 6,25 делится на 1,25 и на 5
Но квадратов другого цвета в ячейке высотой и длиной 6,25 получается 4 а не 5