{ Action recursive de coloriage d'une zone } { de pixels de valeurs identiques } { px : La position en x du pixel germe } { py : la position en y du pixel germe } { t : la matrice des valeurs des pixels } { c : la couleur de remplissage } { ct : la couleur de la tache à remplir } action coloriageRecursif(-> entier px, -> entier py, -> entier [][] t ->, -> entier c, -> entier ct) entier n <- longueur(1,t) entier m <- longueur(2,t) si ( px >= 0 ) et ( px < m ) et ( py >= 0 ) et ( py < n ) alors si ( t[py][px] <> c ) et ( t[py][px] == ct ) alors t[py][px] <- c coloriageRecursif(px+1,py,t,c,ct) coloriageRecursif(px-1,py,t,c,ct) coloriageRecursif(px,py+1,t,c,ct) coloriageRecursif(px,py-1,t,c,ct) fsi fsi fin action { Action de coloriage d'une zone de pixels } { de valeurs identiques } { px : La position en x du pixel germe } { py : la position en y du pixel germe } { t : la matrice des valeurs des pixels } { c : la couleur de remplissage } action coloriage(-> entier px, -> entier py, -> entier [][] t ->, -> entier c) coloriageRecursif(px,py,t,c,t[py][px]) fin action { Action recursive de remplissage d'une zone } { de pixels delimitee par une valeur } { px : La position en x du pixel germe } { py : la position en y du pixel germe } { t : la matrice des valeurs des pixels } { c : la couleur de remplissage } { cl : la couleur de delimitation } { de la tache à remplir } action remplissageRecursif(-> entier px, -> entier py, -> entier [][] t ->, -> entier c, -> entier cl) entier n <- longueur(1,t) entier m <- longueur(2,t) si ( px >= 0 ) et ( px < m ) et ( py >= 0 ) et ( py < n ) alors si ( t[py][px] <> c ) et ( t[py][px] <> cl ) alors t[py][px] <- c remplissageRecursif(px+1,py,t,c,cl) remplissageRecursif(px-1,py,t,c,cl) remplissageRecursif(px,py+1,t,c,cl) remplissageRecursif(px,py-1,t,c,cl) fsi fsi fin action