Ночной город

В данной работе реализованы следующие функции:
1. brush - функция, представляющая собой аналог кисточки, которая закрашивает пиксель своим цветом.
2. setPixelPoint - функция, которая ставит на холсте пиксель в точке (x,y),и имеет цвет color.
3. createLine - функция строит прямую линию по алгоритму Брезенхема из точки (x1;y1) в точку (x2;y2) и имеет цвет color.
4. circle - функция строит окружность, используя алгоритм Мичнера. Ее центр устанавливается в точке (center_x; center_y). Окружность имеет цвет обводки color, а ее радиус задается с помощью radius.
5. fill - функция рекурсивной заливки фигур указанным цветом borderColor.
6. eqColor - функция, сравнивает два цвета с точностью до eps,представляющую из себя предел погрешности несовпадения двух цветов. Данная функция необходима для того, чтобы была возможность заливки, не выходящей за пределы контура.
7. square - функция, необходимая для построения уникального примитива. В будущем понадобится для построения домов и окон. Содержит в себе функцию createLine(алгоритм Брезенхема)
8. drawBackground - функция для построения луны и кратеров. Содержит в себе функцию fill(рекурсивное закрашивание) и circle(алгоритм Мичнера).
Так же в работе представлена палитра используемых цветов - colors.
Большое количество циклов, а так же вызовов функции square обусловлено тем, что алгоритм заливки не справляется с большими фигурами.