· Bước 1:
- Chọn điểm đầu cần vẽ (x,y) = (0,R).
- Tính p đầu tiên: p = 3 - 2R.
- Vẽ 8 điểm ứng với (x,y).
· Bước 2:
- Tăng x lên 1 pixel: x = x + 1.
- Nếu p < 0: p = p + 4x + 6.
Ngược lại: p = p + 4(x - y) + 10 và y = y – 1.
- Vẽ điểm 8 điểm ứng với (x,y) mới.
· Bước 3: Lặp lại bước 2 cho đến khi x = y.
Sau đây là hàm cài đặt thuật toán:
void ve8diem(int x0,int y0,int x, int y, int color)
{
putpixel( x0 + x , y0 + y ,color);
putpixel( x0 - x , y0 + y ,color);
putpixel( x0 + x , y0 - y ,color);
putpixel( x0 - x , y0 - y ,color);
putpixel( x0 + y , y0 + x ,color);
putpixel( x0 - y , y0 + x ,color);
putpixel( x0 + y , y0 - x ,color);
putpixel( x0 - y , y0 - x ,color);
}
void circle(int x0,int y0,int r)
{
int x=0;int y=r;
int p=3-2*r;
while (x<=y)
{
ve8diem(x0,y0,x,y,15);
if(p<0) p=p+4*x+6;
else
{
p=p+4*(x-y)+10;
y=y-1;
}
x=x+1;
}
}
» Tin mới nhất:
» Các tin khác: