这个是在矩阵数组中填充的,num为填充后的,-1为空白,99为边界,把这几个替换掉就好了。我真笨,55555
左图为上色前的多边形,右图为上色后的多边形
void seed(int x,int y){
if(mapIt[x][y]!=-1){
return;
}
int ll=x-1;
int rr=x+1;
rr=seedFillr(x,y); //right
ll=seedFilll(x-1,y); //left
for(int i=ll;i<=rr+2;i++){
if(mapIt[i][y+1]==-1&&mapIt[i+1][y+1]==99){
seed(i,y+1);
}
if(mapIt[i][y-1]==-1&&mapIt[i+1][y-1]==99){
seed(i,y-1);
}
}
}
int seedFilll(int x,int y){
if(mapIt[x][y]!=-1){
return x+1;
}
else{
mapIt[x][y]=num;
return seedFilll(x-1,y);
}
}
int seedFillr(int x,int y){
if(mapIt[x][y]==-1){
mapIt[x][y]=num;
return seedFillr(x+1,y);
}
else return x-1;
}
1523

被折叠的 条评论
为什么被折叠?



