public static Point genNext(Point p)
{
int x = p.x;
int y = p.y;
if (x > 0)
{
return new Point(x - 1, y + 1);
}
else if (x == 0)
{
return new Point(y + 1, 0);
}
return new Point(0, 0);
}
//类似于等腰三角形,
//每增加一行, 就从这个点开始,列加1,行减一,当行等于0时,行=列+1。
if (x > 0)
说明当前行不是第一行,第一行为 0 。
所以 行要减一 列要加一 ,就到了↗右上的点。
if (x == 0)
说明当前点的行所在为第一行 0
所以 行要等于列+1, 列=0,定位到下一行的第0个位置
如果 x = -1, y=-1 ,那么定位到 00 这个点。
这样的辐射就会形成一个类似等腰三角形的辐射区域, 5,0 -- 0,5 斜着的一个等腰形区域。