void MyWindow::flood_fill(int x0,int y0,int zm_k,int nw_k){
QStack<QPoint> q; // utworzenie stosu
q.push(QPoint(x0,y0)); // odlozenie na stos punktu x0,y0
QPoint p;
while (!q.isEmpty()) { // dopoki stos nie pusty
p = q.top();
q.pop(); // zdjecie ze stosu
x0 = p.x();
y0 = p.y();
if ((x0>=0)&&(y0>=0)&&(x0<szer)&&(y0<wys)) // jesli kliknalem w okno to zamalowanie
{
if(kolor(x0,y0) == zm_k){
ustaw_kolor(x0,y0,nw_k);
q.push(QPoint(x0 - 1, y0));
q.push(QPoint(x0 + 1, y0));
q.push(QPoint(x0, y0 - 1));
q.push(QPoint(x0, y0 + 1));
}}
}
}
Mam pytanie po co to zostalo stworzone? Dlaczego dodajemy nowe punkty do p a zdejmujemy punkty ze stosu ?
p = q.top();
q.pop();
x0 = p.x();
y0 = p.y();