Hei,
Voisiko joku selittää, miten tämä wikipedian esiemerkki flood fill-algoritmista toimii?
http://en.wikipedia.org/wiki/File:Recursive_Flood_Fill_4_(aka).gif
Scrpti on tällainen:
sub FloodFill4
{
my ($x, $y) = @_;
if ($im->getPixel ($x, $y) == $colfill)
{
$im->setPixel ($x, $y, $colpen);
WriteImage ();
FloodFill4 ($x, $y 1);
FloodFill4 ($x, $y-1);
FloodFill4 ($x 1, $y);
FloodFill4 ($x-1, $y);
}
}
Miksi täyttö lähtee esimerkissä alaspäin, vaikka ensimmäinen rivi koodissa on x, y 1?
Entä miksi algoritmi päättää jatkaa juuri aloitussolun vasemmasta solusta, kun vasemman alalaidan neliö on väritetty?
Rekursiivinen flood fill?
Miten toimii?
2
857
Vastaukset
- pelkkää päättelyä
1) y 1 on yleensä alaspäin, bittikartat alkavat yleensä vasemmasta yläkulmasta.
2) Koska kun alussa kuljetaan alas, ei päästä muualle kuin vasemmalle. Siitä täytetään alas. Kun vasemmanpuoleinen lohko on täytetty kokonaan, jatketaan ylös (aloituskohdan vasemmanpuoleinen pikseli). Tällöin päästään rekursion juuressa toiseen FloodFill4:ään ja jatketaan ylös. - metodi
kannattaa käyttää scanline-floodfill algoritmia, huomattavan paljon nopeampi
Ketjusta on poistettu 0 sääntöjenvastaista viestiä.
Luetuimmat keskustelut
Ikävä sua j-mies!
Enkä oikeesti ymmärrä miksi. Eihän me tunneta ees kovin hyvin. Mut haluaisin sun kanssa jotain säätöä sit kai vaan 🫦535099Voi itku! Sanna Marinilla EI OLLUT mitään tekemistä jäänmurtajakauppojen kanssa
Miten tässä näin kävi? Sanna-kultti paniikissa.913932En välttämättä koskaan aikaisemmin tosissani uskonut mihinkään sielunkumppanuuteen ym
Ennen kuin tapasin sinut. Oudointahan tässä on että ollaan tiedetty toisemme kuitenkin vuosia ja enemmän vuosia, mutta v153243- 372844
- 212202
- 442195
- 392156
- 92095
Sielunkumppanini ja nykyinen kaivattuni ovat hyvin samankaltaisia ihmisiä
Ja uskon että he punovat langansa yhteen pian. Sielunkumppanille voi olla kova paikka hyväksyä kuinka välittävä ja herkk341742- 641721