Первая проблема была, когда я рисовал холст сплошным большим квадратом 128x128. А потом линиями делил на квадраты по 8x8. Когда дело дошло масштабирования, я долго не мог правильно придумать логику. Помогало отойти от компьютера, полежать и подумать получше. После дня мытарств я решил перейти на opengl, так как в DrawingArea, который рисовал с помощью cairo, рисовались линии по два пикселя в ширину, хотя ширину устанавливал в единицу. Когда перешел на opengl и потратив пол дня на то, чтобы переписать некоторые части, я обнаружил, что недопустимо использовать математические функции. Поискав на github репозитории с математикой и попробовал скопировать эту функции, я дико разозлился от этой скучной работе. Я бросил это занятие до следующего дня. Хотя, можно сказать, что я бросил это занятие почти перед сном.