Определите, какая область окна нажата

#math #mouseevent

#математика #mouseevent

Вопрос:

Это действительно своего рода общий вопрос программирования. У меня есть окно, разделенное на 9 четных квадратов. Когда пользователь нажимает на один из этих квадратов, я хотел бы знать, какой именно. Я могу получить местоположение щелчка с помощью переменных x и y.

Мой текущий подход — xRegion = screenWidth / x и yRegion = screenHeight / y который даст мне, например, (1,1) для точки (320 240) в окне 640×480. Но это работает только для x значений и y значений, превышающих примерно одну треть экрана. Я знаю, что это, вероятно, действительно просто, но, похоже, я не могу понять это.

Ответ №1:

 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
  

Комментарии:

1. Потрясающе, спасибо. Теперь мне просто нужно перевести это в его положение в одномерном массиве…

2. Спасибо. Я все еще пытаюсь понять, почему это работает. :/