Положение курсора на экране
Оператор if может быть использован вместе в переменными mouseX и mouseY для задания положения курсора в окне.
Пример 1: Найди курсор
Программа в этом примере определяет, где находится курсор - справа или слева от линии, а затем двигает линию в направлении курсора:
float x; // линии рисования стрелки line(mouseX, mouseY, mouseX + z, mouseY - 10); |
|
Чтобы писать программы, имеющие графический интерфейс пользователя (кнопки, полосу прокрутки, флажки и т.д.), необходимо написать код, который знает, когда курсор находится в определенной области экрана.
Следующие два примера показывают, как проверить, находится курсор в пределах круга или прямоугольника, или нет. Код составлен из отдельных модулей с переменными, поэтому вы сможете использовать его для проверки любого круга или прямоугольника просто заменив несколько величин.
Пример 2. Границы круга
Для проверки круга:
- мы применим функцию dist() для определения расстояния от центра круга до курсора
- затем сравним это расстояние с радиусом круга
- если расстояние меньше, мы будем знать, что курсор внутри круга.
В следующем примере, когда курсор попадает в круг, размер круга увеличивается:
int x = 120; //ellipseMode() меняет интерпритацию параметров эллипса ellipseMode(RADIUS); println("x = ",x," y = ",y," radius = ",radius , " d = ",d); |
|
Пример 3: Границы прямоугольника
Для определения, находится курсор в прямоугольнике, или нет, мы применим другой подход. Мы реализуем четыре отдельных теста, проверяющих, по какую сторону от каждой линии прямоугольника находится курсор, а затем сравним результаты - если все окажутся истинными, программа будет знать, что курсор находится внутри прямоугольника. Это иллюстрирует рис. Все действия
просты, но, собранные в одну программу, могут показаться сложными:
int x = 80; // && (оператор логическое И) if ((mouseX > x) && (mouseX < x+w) && |
Выражение в операторе if несколько сложнее, чем те, что мы видели раньше. Чтобы убедиться в том, что все четыре выражения (mouseX > x, и др.) истинны, они собраны в одно выражение с помощью логического И - символа &&. Если хотя бы одно выражение ложно, все выражение будет ложно, и прямоугольник не изменит цвет на черный.
- Создайте проект, в котором происходит построение линий за движением указателя мыши. При щелчке происходит очищение экрана.
- Создайте проект, в котором на холсте нарисованные глаза, зрачки которых движутся по указателю мыши.