Рисование окружности
void Circle(int xc,int yc,int r){
int x=0;
int y=r; // Y = радиус
int k=5; // Коэфициент скругления
int p=0;
while(x < y){ // Пока дуга не превратилась в прямую линию
if(p<0){
p+=x+k; // Можно без k, но тогда не будет достаточного скругления
x++;
}else{
p+=(x-y);
x++;
y--;
}
// Рисование 8 дуг, из которых состоит окружность
// Правая половина
PutPixel(xc+x,yc+y);
PutPixel(xc+y,yc+x);
PutPixel(xc+y,yc-x);
PutPixel(xc+x,yc-y);
// Левая половина
PutPixel(xc-x,yc-y);
PutPixel(xc-y,yc-x);
PutPixel(xc-y,yc+x);
PutPixel(xc-x,yc+y);
}
}
Вот еще одна реализация рисование фигуры с использованием только целых чисел, без операций деления и умножения.
Залитую окружность можно нарисовать путем изменения радиуса.