我正在尝试实现简单的边界填充方法(使用 4 个连接的方法)来填充矩形。我是按如下方式进行的(下面的代码),但是矩形没有被正确填充:当它到达矩形的一半时它停止填充。
但是在尝试填充圆圈时,相同的代码可以正常工作。谁能帮我找出问题所在?
提前致谢
#include <stdio.h>
#include <conio.h>
#include <graphics.h>
void boundfill(int xc, int yc, int r, int b) {
int cur;
cur = getpixel(xc, yc);
if (cur != b && cur != r) {
putpixel(xc, yc, r);
delay(1);
boundfill(xc + 1, yc, r, b);
boundfill(xc - 1, yc, r, b);
boundfill(xc, yc + 1, r, b);
boundfill(xc, yc - 1, r, b);
}
}
void main() {
int gd = DETECT, gm;
initgraph(&gd, &gm, "..\\bgi");
rectangle(100, 100, 300, 300);
boundfill(105, 105, 4, WHITE);
getch();
closegraph();
}
输出:
但是当我对矩形使用以下坐标时,它工作正常。给定坐标:
rectangle(50, 50, 100 ,100);
boundfill(55, 55, 4, WHITE);
为此,输出为: