`

等腰三角形辐射 算法

 
阅读更多
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  斜着的一个等腰形区域。

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics