2011-10-01 69 views
0

這實際上是一種常見的編程問題。 我有一個窗口分成9個偶數的正方形。當用戶點擊其中一個方塊時,我想知道哪一個。我可以通過x和y變量獲取點擊的位置。確定窗口的哪個區域被點擊

我目前的做法是xRegion = screenWidth/xyRegion = screenHeight/y這將給我,例如,(1,1)點(320,240)在640x480窗口。但是這隻適用於大於屏幕三分之一左右的xy值。我知道這可能很簡單,但我似乎無法將我的大腦包裹在其中。

回答

2
xRegion = (x*3)/screenWidth; 
yRegion = (y*3)/screenHeight; 

+-----+-----+-----+ 
| 0,0 | 1,0 | 2,0 | 
+-----+-----+-----+ 
| 0,1 | 1,1 | 2,1 | 
+-----+-----+-----+ 
| 0,2 | 1,2 | 2,2 | 
+-----+-----+-----+ 

如果您使用的語言如js或php,您必須發言/ trunc結果得到一個整數。
加1的結果,如果你想在第一區域爲(1,1)

對於結果從1到9做到這一點:cell = yRegion*3 + xRegion + 1;

1 2 3 
4 5 6 
7 8 9 
+0

真棒,謝謝。現在我只需要把它轉換成它在一維數組上的位置...... –

+0

好的,我已經更新了答案 – Peter

+0

謝謝。我仍然試圖弄清楚爲什麼這會起作用。 :/ –

相關問題