2011-09-30 62 views
4

我有一個大小爲n^2的數組,代表大小爲nxn的正方形網格。陣列作爲網格,如何對角線移動?

我想從任何一個正方形(0到(n^2)-1)到最右上方的正方形,你可以在一條直線上對角線移動。

我已經知道要走到左上角的大多數平方是取當前平方x而最左上方的平方是x%(n + 1)。

有沒有人知道類似的方法右上方最正方形?謝謝!

+1

對角線是否僅指45度角?或者你的意思是沿着軸線移動。你的等式不會給我非常一致的結果。 – xthexder

+0

你需要用這種方式編號嗎?如果你使用了一個二維數組和一個座標系,IMO會更容易,例如:'(0,0)'是左上角的平方,'(n-1,n-1)'是右下角 – NullUserException

+0

您未提供足夠的信息來回答此問題。數組是按照數組[0] = 0,0,數組[1] = 0,1還是數組[1] = 1,0的順序排列的?座標系0,0是左下還是左上? – Clint

回答

1

如果我完全理解你要達到的目標,你所要做的就是用一條直線連接兩個點,並使用直線公式計算它所經過的單元的座標。你可以用這個Bresenham's line drawing algorithm