Cat hungry.png
Здравствуйте! Собираем деньги на перевод материалов по электронике(https://www.allaboutcircuits.com/education/). Реквизиты указаны здесь.

Processing:Примеры/Объекты

Материал из Онлайн справочника
Перейти к: навигация, поиск


Перевод: Максим Кузьмин (Cubewriter)
Перевел 2686 статей для сайта.

Контакты:

Проверка/Оформление/Редактирование: Мякишев Е.А.


Ambox content.png Черновик


Описание[1]

Перемещайте курсор по экрану, чтобы изменить скорость и позицию графических объектов. Группы линий задаются при помощи класса MRect.

Пример

  1. MRect r1, r2, r3, r4;
  2.  
  3. void setup()
  4. {
  5.   size(640, 360);
  6.   fill(255, 204);
  7.   noStroke();
  8.   r1 = new MRect(1, 134.0, 0.532, 0.1*height, 10.0, 60.0);
  9.   r2 = new MRect(2, 44.0, 0.166, 0.3*height, 5.0, 50.0);
  10.   r3 = new MRect(2, 58.0, 0.332, 0.4*height, 10.0, 35.0);
  11.   r4 = new MRect(1, 120.0, 0.0498, 0.9*height, 15.0, 60.0);
  12. }
  13.  
  14. void draw()
  15. {
  16.   background(0);
  17.  
  18.   r1.display();
  19.   r2.display();
  20.   r3.display();
  21.   r4.display();
  22.  
  23.   r1.move(mouseX-(width/2), mouseY+(height*0.1), 30);
  24.   r2.move((mouseX+(width*0.05))%width, mouseY+(height*0.025), 20);
  25.   r3.move(mouseX/4, mouseY-(height*0.025), 40);
  26.   r4.move(mouseX-(width/2), (height-mouseY), 50);
  27. }
  28.  
  29. class MRect
  30. {
  31.   int w; // ширина одной линии в прямоугольнике
  32.   float xpos; // позиция X прямоугольника
  33.   float h; // высота прямоугольника
  34.   float ypos ; // позиция Y прямоугольника
  35.   float d; // расстояние между линиями в прямоугольнике
  36.   float t; // количество линий в прямоугольнике
  37.  
  38.   MRect(int iw, float ixp, float ih, float iyp, float id, float it) {
  39.     w = iw;
  40.     xpos = ixp;
  41.     h = ih;
  42.     ypos = iyp;
  43.     d = id;
  44.     t = it;
  45.   }
  46.  
  47.   void move (float posX, float posY, float damping) {
  48.     float dif = ypos - posY;
  49.     if (abs(dif) > 1) {
  50.       ypos -= dif/damping;
  51.     }
  52.     dif = xpos - posX;
  53.     if (abs(dif) > 1) {
  54.       xpos -= dif/damping;
  55.     }
  56.   }
  57.  
  58.   void display() {
  59.     for (int i=0; i<t; i++) {
  60.       rect(xpos+(i*(d+w)), ypos, w, height*h);
  61.     }
  62.   }
  63. }

См.также

Внешние ссылки

  1. processing.org - Objects by hbarragan