2012-08-06 27 views
7

我正在畫一個巨大的空白在這裏。如何從索引中獲取行和列?

我發現的一切都是關於從給定的行和列獲取索引,但是如何從索引獲取行和列?

該行很容易:(int)(index/width)

我的大腦正在遭受大量流血,試圖計算列。

對我感到羞恥。

回答

23

對於從零開始的索引,這兩個操作是:

row = (int)(index/width) 
column = index % width 

我使用%在這裏,因爲我是一個C傢伙,雖然你沒有指定你的語言,它當然看起來像其中一個基於C的。

如果您的問題不涉及到C或它的弟兄們,這將是任何模運算符是對於特定的環境,其餘的遺留當您通過width劃分index

如果不模運算符,你可以使用:

row = (int)(index/width) 
column = index - (row * width) 
+0

你這該死的權利,我的命名是亂七八糟的,我也把它稱爲一排,大聲笑,剛纔我發現了一個可能愚蠢的方案:行= index - (col * width),當然,你是我正在尋找的人,謝謝! – Icebone1000 2012-08-06 02:38:48

+0

我會考慮x位置一列和Y一行,所以這是倒退。 – CodyMace 2014-12-17 23:10:50

+0

@CodyMace:是的,我在答案中明確表示他們錯了。但是,你是對的。爲了避免混淆,並且由於OP已經聲明他們錯了,我已經整理了這個問題和這個答案來糾正這個問題。感謝您的幫助。 – paxdiablo 2014-12-18 02:33:37

0

Paxdiablo的答案是正確的。如果有人需要相反的過程來得到行和列索引:

index = (row * width) + column