Заполнение потока Python не возвращается - PullRequest
0 голосов
/ 22 февраля 2019

В настоящее время я разрабатываю код заливки для заливки полигонов в программном рендере, который я сделал для своего класса компьютерной графики.Вот код ниже моей рекурсии, я основал его на алгоритме от Geeksforgeeks.

def flood(self, x, y, colorOld, colorNew):
    if (x < 0 or x >= self.width or y < 0 or y >= self.height):
        print("height/width not in range")
        return
    if (self.framebuffer[x][y] != colorOld):
        print("color is old")
        return

    print(str(x) + ", " + str(y))

    self.point(x, y, colorNew)

    self.flood(x+1, y, colorOld, colorNew)
    self.flood(x-1, y, colorOld, colorNew)
    self.flood(x, y+1, colorOld, colorNew)
    self.flood(x, y-1, colorOld, colorNew)
    return

def floodFill(self, x, y, colorN):
    colorO = self.framebuffer[x][y]
    self.flood(x, y, colorO, colorN)

Однако, он застревает, когда достигает конца ширины, он не возвращается, даже если он достигает одного изflags.

Если мне нужно предоставить весь мой рендер, просто скажите мне.

...