Giải thuật sau đây là giái thuật nào đã học? Void Function(int xt, int yt, int r, int c) { int x,y,d; x = 0; y = r; d = l –r; while ( x < = y) { putpixel(xt + x, yt + y,c); putpixel(xt - x, yt + y,c); putpixel(xt + x, yt - y,c); putpixel(xt - x, yt - y,c); putpixel(xt + y, yt + x,c); putpixel(xt - y, yt + x,c); putpixel(xt + y, yt - x,c); putpixel(xt - y, yt - x,c); if (d < 0) d+= 2 * x + 3; else { d+= 2 * (x-y) + 5; y; } X++; } }
Để vẽ đường ellipse ta chỉ xây dựng giải thuật vẽ ¼ đường ellipse sau đó lấy đối xứng. Hàm sau là hám lấy đối xứng 4 điểm (vẽ 4 điểm 1 lúc). Rất tiếc là trong hàm bị thiếu một lệnh nên hình ellipse khi hiển thị trên màn hình sẽ thiếu ¼ hình ở phần nào: void plot (int xc, int yc, int x, int y, int color) { // xc,yc là tọa độ tam của ellipse putpixel(xc + x, yc + y, color); putpixel(xc - x, yc + y, color); putpixel(xc + x, yc - y, color); }