Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Math 确定单击窗口的哪个区域_Math_Mouseevent - Fatal编程技术网

Math 确定单击窗口的哪个区域

Math 确定单击窗口的哪个区域,math,mouseevent,Math,Mouseevent,这实际上是一个一般的编程问题。 我把一扇窗户分成9个正方形。当用户点击其中一个方块时,我想知道是哪一个。我可以通过x和y变量得到点击的位置 我目前的方法是xRegion=screenWidth/x和yRegion=screenHeight/y,这将为640x480窗口中的点(320240)提供(1,1)。但这仅适用于大于屏幕三分之一左右的x和y值。我知道这可能真的很简单,但我似乎不能把我的大脑围绕着它 xRegion = (x*3) / screenWidth; yRegion = (y*3)

这实际上是一个一般的编程问题。 我把一扇窗户分成9个正方形。当用户点击其中一个方块时,我想知道是哪一个。我可以通过x和y变量得到点击的位置

我目前的方法是
xRegion=screenWidth/x
yRegion=screenHeight/y
,这将为640x480窗口中的点(320240)提供(1,1)。但这仅适用于大于屏幕三分之一左右的
x
y
值。我知道这可能真的很简单,但我似乎不能把我的大脑围绕着它

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等语言,则必须对结果进行floor/trunc运算才能得到整数。
如果希望第一个区域为(1,1),请在结果中添加1

对于结果1到9,执行以下操作:
cell=yRegion*3+xRegion+1

1 2 3
4 5 6
7 8 9

太棒了,谢谢你。现在我要把它转换成一维阵列上的位置…谢谢。我仍在试图弄清楚为什么会这样/