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

Processing:Примеры/Броуновское движение

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


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

Контакты:

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


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


Описание[1]

Непрерывная линия, направление которой задается с помощью случайных чисел.

Пример

  1. int num = 2000;
  2. int range = 6;
  3.  
  4. float[] ax = new float[num];
  5. float[] ay = new float[num];
  6.  
  7.  
  8. void setup()
  9. {
  10.   size(640, 360);
  11.   for(int i = 0; i < num; i++) {
  12.     ax[i] = width/2;
  13.     ay[i] = height/2;
  14.   }
  15.   frameRate(30);
  16. }
  17.  
  18. void draw()
  19. {
  20.   background(51);
  21.  
  22.   // смещаем все элементы массива на 1 позицию влево:
  23.   for(int i = 1; i < num; i++) {
  24.     ax[i-1] = ax[i];
  25.     ay[i-1] = ay[i];
  26.   }
  27.  
  28.   // помещаем в конец массива новое значение:
  29.   ax[num-1] += random(-range, range);
  30.   ay[num-1] += random(-range, range);
  31.  
  32.   // огораживаем все пиксели на экране:
  33.   ax[num-1] = constrain(ax[num-1], 0, width);
  34.   ay[num-1] = constrain(ay[num-1], 0, height);
  35.  
  36.   // рисуем линию, соединяющую точки:
  37.   for(int i=1; i<num; i++) {    
  38.     float val = float(i)/num * 204.0 + 51;
  39.     stroke(val);
  40.     line(ax[i-1], ay[i-1], ax[i], ay[i]);
  41.   }
  42. }

См.также

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

  1. processing.org - Brownian motion