Python漫灌不归

2024-09-30 01:28:03 发布

您现在位置:Python中文网/ 问答频道 /正文

我目前正在开发一个洪水填充代码来填充我为计算机图形学类制作的软件渲染器中的多边形。下面是我递归的代码,我基于geeksforgeks的一个算法。你知道吗

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)

但是,当它到达宽度的末端时会被卡住,即使它到达其中一个标志也不会返回。你知道吗

如果我需要提供我的全部渲染器,只要告诉我。你知道吗


Tags: or代码selfreturnifdefwidthprint

热门问题