Функция mouseClicked() активируется, когда вы кликаете мышью. Этоозначает нажатие и отпускание кнопки мыши. В последнем нашем скетче этафункция применяется для рисования прозрачного красного круга.
Функция mouseDragged() активируется, когда вы нажимаете кнопку мыши идвигаете мышью, пока кнопка нажата. С помощью этой функции мы рисуемлинии в нашем скетче.
Функция mouseMoved() вызывается каждый раз, когда мышь передвигается, акнопки не нажаты. В нашем скетче она рисует белые прозрачные круги с чернойпрозрачной границей.
Функция mousePressed() вызывается, когда вы нажимаете кнопку мыши. Мыиспользовали эту функцию вместе со встроенной переменной mouseButton дляочистки экрана правой кнопкой мыши.
Функция mouseReleased() вызывается, когда вы отпускаете кнопку мыши. Спомощью этой функции мы рисуем белый прозрачный прямоугольник размеромс окно скетча поверх всех изображений.
Встроенная переменная mouseX содержит текущую координату x мыши в окнескетча. Она обновляется с каждым кадром.
Встроенная переменная mouseY содержит текущую координату y мыши в окнескетча. Она обновляется с каждым кадром.
Встроенная переменная pmouseX содержит координату x мыши предыдущегокадра. Она обновляется с каждым кадром.
Встроенная переменная pmouseY содержит координату y мыши предыдущегокадра. Она обновляется с каждым кадром.
Встроенная переменная mousePressed - это логическая переменная, проверяющая, нажата кнопка или нет. Значение переменной истинно, когда кнопкамыши нажата и ложно, когда она отжата.
Встроенная переменная mouseButton - это переменная, содержащаяинформацию о том, какая кнопка мыши нажата. Она принимает значенияLEFT, RIGHT и CENTER.
Работаем с мышью
источник: Ян Вантомм - Processing 2 креативное программирование - 2012
Задание. Составить код скетча в котором:
Мышь оставляет след в виде кругов.
Когда вы нажимаете кнопку и отпускаете ее, появляется красный круг.
Когда вы двигаете мышью, удерживая левую кнопку мыши, появляется черная линия.
По нажатию правой кнопки мыши картинка стирается и вы можете начать сначала.
void setup()
{
size( 640, 480 );
smooth();//сглаживает края фигур background( 255 ); //устанавливает цвет заливки фона }
void draw()
{ // пусто, но оно нам нужно для создания приложения, работающего в непрерывном режиме }
/* Вызывается, когда вы нажимаете кнопку мыши. Мы использовали эту функцию вместе со встроенной переменной mouseButton для очистки экрана правой кнопкой мыши.*/ void mousePressed()
{ if ( mouseButton == RIGHT ){background( 255 );} // если нажата правая кнопка мыши }
// Вызывается каждый раз, когда мышь передвигается, а кнопки не нажаты.
void mouseMoved()
{ stroke( 0, 64 );// устанавливает цвет штриха фигуры. strokeWeight( 1 ); //устанавливаем толщину контура фигуры fill( 255, 32 ); // используется для установки цвета заливки фигуры float d = dist( mouseX, mouseY, pmouseX, pmouseY ); /* команда dist позволяет определить расстояние между двумя точками*/ constrain( d, 8, 100 ); // позволяет указать границы значений для определенной переменной ellipse( mouseX, mouseY, d, d ); }
// активируется, когда вы нажимаете кнопку мыши и двигаете мышью, пока кнопка нажата void mouseDragged() { stroke( 0 ); // устанавливает цвет контура фигуры. float d = dist( mouseX, mouseY, pmouseX, pmouseY ); /* команда dist позволяет определить расстояние между двумя точками*/ constrain( d, 0, 100 ); // позволяет указать границы значений для определенной переменной float w = map( d, 0, 100, 1, 10 ); // команда map позволяет перевести данные из одной шкалы в другую strokeWeight( w );// Устанавливаем толщину контура фигуры line( mouseX, mouseY, pmouseX, pmouseY ); }
//вызывается, когда вы отпускаете кнопку мыши. void mouseReleased()
{ noStroke();//контур вашей фигуры невидим fill( 255, 16 );// используется для установки цвета заливки фигуры rect( 0, 0, width, height ); }
//Активируется, когда вы кликаете мышью. Это означает нажатие и отпускание кнопки мыши. void mouseClicked()
{ fill( 255, 0, 0, 128 );
float d = random( 20, 200 );
ellipse( mouseX, mouseY, d, d ); }
Пример 2. Перемещение мыши изменяет положение и размер каждого поля.