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

发布于 2024-12-07 19:44:40 字数 294 浏览 0 评论 0原文

这确实是一个一般性的编程问题。 我有一个窗口分成 9 个均匀的正方形。当用户单击这些方块之一时,我想知道是哪一个。我可以通过 x 和 y 变量获取点击的位置。

我当前的方法是 xRegion = screenWidth / xyRegion = screenHeight / y 这会给我,例如,(1,1)对于点(320,240) 640x480 窗口。但这仅适用于大于屏幕三分之一左右的 xy 值。我知道这可能非常简单,但我似乎无法理解它。

This is really sort of a general programming question.
I have a window split into 9 even squares. When the user clicks one of those squares, I'd like to know which one. I can get the location of the click via x and y variables.

My current approach is xRegion = screenWidth / x and yRegion = screenHeight / y which will give me, for instance, (1,1) for the point (320,240) in a 640x480 window. But that only works for x and y values greater than one third or so of the screen. I know this is probably really simple, but I can't seem to wrap my brain around it.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

流心雨 2024-12-14 19:44:40
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 这样的语言,则必须对结果进行取整/截断以获得整数。
如果您希望第一个区域为 (1,1),请在结果中添加 1

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

1 2 3
4 5 6
7 8 9
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 |
+-----+-----+-----+

If you are ausing a language like js or php, you must floor/trunc the result to get an integer.
Add 1 to the results if you want the first region to be (1,1)

For results 1 to 9 do this: cell = yRegion*3 + xRegion + 1;

1 2 3
4 5 6
7 8 9
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文