A paintban hogyan űködik a kitöltés?
hogyan írjam meg én is azt a programot kézzel mi annak az alapja?
nekérdezzétek miben írom az nem érdekes csak a menetre vagyok kiváncsi.
Igen egyszerű a megírása egy rekurzív eljárással:
x,y : koordináta (kezdőértéke a kattintott pixel koordinátája)
szin : a kijelölt szín (amit majd át akarunk színezni)
újszín : amienre akarjuk színezni
szin(x,y) : az adott pixel színét adja vissza
addszín(x,y,újszín) : az adott pixel átszínezi újszínnel
void kitölt(x,y)
{
if(szín(x,y)==szín)
{
kitölt(x+1,y);
kitölt(x,y+1);
kitölt(x-1,y);
kitölt(x,y-1);
addszín(x,y,újszín);
}
}
Nem nehéz megérteni a működését.
16:59 szerintem arra gondolt, hogy a mértéktelen rekurzív hívások hamar "kikönyökölnek" a veremből. (Próbálj rákeresni a rekurzióra vagy a rekurzív algoritmusokra.)
A választ a kérdésedre viszont sajnos nem tudom. Valószínűleg tényleg a kattintott hely szomszédságában lévő pontok színeit kell vizsgálni újra és újra egyre nagyobb körben, amíg nincs több egyező szín. Én is kíváncsi lennék a trükkre.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!