1

我正在尝试实现一种算法来填充区域,该特定算法在以下Wikipedia文档中的“固定内存方法(右手填充方法)”标题下给出。下面给出了发生左转和右转的算法的具体部分......

START:
    set count to number of non-diagonally adjacent pixels filled (front/back/left/right ONLY)
    if count is not 4
            do
                    turn right
            while front-pixel is empty
            do
                    turn left
            while front-pixel is filled
    end if

该声明明确指出要向右转或向左转,而不是向右或向左移动。令我困惑的是,(x,y)坐标处的像素如何转向其左侧的右侧?

4

2 回答 2

2

假设 forward 最初的意思是“向上”。右转改变了前进的意思——现在它意味着“正确”。再次右转,前进是“下”。

于 2012-08-14T10:58:32.317 回答
1

您基本上可以将您的“像素”视为虫子/蚂蚁/恐龙/金色独角兽。所以不仅有一个位置,还有一个方向,它所面对的(方向)。因此,如果您的像素向上查找,则该命令turn right将告诉它向右查找。move forward然后意味着向右移动一个像素。

如果你告诉你的像素turn right4 次,它会看向与以前相同的方向。3xturn right与 1x 相同turn left

于 2012-08-14T11:03:04.410 回答