Несколько алгоритмов для рисования окружности без использования встроенной функции circle():
Алгоритм построения окружности методом средней точки. 3 Разработан Джеком Брезенхэмом. 3 Суть алгоритма в том, чтобы найти координаты точек для растеризации окружности. 3 Для начала необходимо обозначить центр и радиус окружности. 3 Задача алгоритма — аппроксимировать кривую x² + y² = r² используя пиксели. 3 Каждый пиксель должен находится примерно на одном расстоянии от центра. 3 Каждый шаг алгоритм расширяет кривую в сторону соседних пикселей, удовлетворяющих неравенству x² + y² <= r², округляя x² + y² в большую сторону. 3
Алгоритм рисования окружности без использования арифметики с плавающей точкой. 4 Пусть радиус окружности равен r. 4 Вокруг окружности рисуют квадрат размера (2r+1)×(2r+1). 4 Теперь обходят каждую точку внутри квадрата. 4 Для каждой точки (x, y), если (x, y) лежит внутри окружности (или x² + y² < r²), то печатают её, в противном случае — пробел. 4