Пятница, 26.04.2024, 02:19
Главная | Регистрация | Вход Приветствую Вас Гость | RSS


Меню сайта


Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0


Тестування онлайн
тестування онлайн 


Социальные закладк

Функции, реагирующие на события мыши.

Встроенные переменные.

  1. Функция mouseClicked() активируется, когда вы кликаете мышью. Это означает нажатие и отпускание кнопки мыши. В последнем нашем скетче эта функция применяется для рисования прозрачного красного круга.
  2. Функция mouseDragged() активируется, когда вы нажимаете кнопку мыши и двигаете мышью, пока кнопка нажата. С помощью этой функции мы рисуем линии в нашем скетче.
  3. Функция mouseMoved() вызывается каждый раз, когда мышь передвигается, а кнопки не нажаты. В нашем скетче она рисует белые прозрачные круги с черной прозрачной границей.
  4. Функция mousePressed() вызывается, когда вы нажимаете кнопку мыши. Мы использовали эту функцию вместе со встроенной переменной mouseButton для очистки экрана правой кнопкой мыши.
  5. Функция mouseReleased() вызывается, когда вы отпускаете кнопку мыши. С помощью этой функции мы рисуем белый прозрачный прямоугольник размером с окно скетча поверх всех изображений.
  1. Встроенная переменная mouseX содержит текущую координату x мыши в окне скетча. Она обновляется с каждым кадром.
  2. Встроенная переменная mouseY содержит текущую координату y мыши в окне скетча. Она обновляется с каждым кадром.
  3. Встроенная переменная pmouseX содержит координату x мыши предыдущего кадра. Она обновляется с каждым кадром.
  4. Встроенная переменная pmouseY содержит координату y мыши предыдущего кадра. Она обновляется с каждым кадром.
  5. Встроенная переменная mousePressed - это логическая переменная, проверяющая, нажата кнопка или нет. Значение переменной истинно, когда кнопка мыши нажата и ложно, когда она отжата.
  6. Встроенная переменная mouseButton - это переменная, содержащая информацию о том, какая кнопка мыши нажата. Она принимает значения LEFT, RIGHT и CENTER.

Работаем с мышью

источник: Ян Вантомм - Processing 2 креативное программирование - 2012

Задание. Составить код скетча в котором: 

  1. Мышь оставляет след в виде кругов.
  2. Когда вы нажимаете кнопку и отпускаете ее, появляется красный круг.
  3. Когда вы двигаете мышью, удерживая левую кнопку мыши, появляется черная линия.
  4. По нажатию правой кнопки мыши картинка стирается и вы можете начать сначала.

 

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.  Перемещение мыши изменяет положение и размер каждого поля.

void setup() {
  size(640, 360); 
  noStroke();
  rectMode(CENTER);
}

void draw() {
  background(51); 
  fill(255, 204);
  rect
(mouseX, height/2, mouseY/2+10, mouseY/2+10);
           println("mouseX = ",mouseX,"  mouseY = ",mouseY);
  fill(255, 204);
  int inverseX = width-mouseX;
  int inverseY = height-mouseY;
        println("inverseX = ",width-mouseX," inverseY = ",height-mouseY);

//первая пара аргументов отвечает за центр прямоугольника (а не за верхний левый угол)
  rect(inverseX, height/2, (inverseY/2)+10, (inverseY/2)+10);

}

 

 

Форма входа
Поиск
Календарь
«  Апрель 2024  »
ПнВтСрЧтПтСбВс
1234567
891011121314
15161718192021
22232425262728
2930
Архив записей
Друзья сайта
  • Официальный блог
  • Сообщество uCoz
  • FAQ по системе
  • Инструкции для uCoz

  • Рейтинг@Mail.ru
    Copyright MyCorp © 2024
    Конструктор сайтов - uCoz