Применение базовых алгоритмических структур в Processing
Проект в среде Processing располагается в функциях:
и
В функции setup () происходят начальные настройки, а функцию draw () удобно использовать для обработки постоянного изменения значений переменных, в частности системных. |
Применение базовых алгоритмических структур (циклов и выбора) для организации движения
Цикл – это такая команда (оператор) языка, что дает возможность объяснить компьютеру сколько раз надо выполнить некое действие или компанию действий.
for (init; test; update) { statements } Выражение:
update изменяет это значение. |
Пример цикла for:
Сохраняя английский порядок, но русскими словами:
|
И всё это записывается просто как: for (int i = 0; i < 2000; i++) {...}, где:
· i = 0 присвоить переменной i начальное значение 0; · i < 2000 так цикл выполняется 2000 раз. Пока выглядит загадочно, потом разъяснится.
результат сохранить в ней же. |
Цикл while(){…}
|
Выбор: |
Примеры: 1. if (z > 100) {z -= 0.5;} else if (z< 50) {z += 2;}
4. if(keyPressed==true) если нажата либо-какая клавиша saveFrame("images/urok_####.png");// выполнить запись кадра(фрейма) в папку images } 5. if (frameCount < 60) /*программа работает в частотой 30 кадров в секунду и завершается после 60 кадров */ { }
|
Задание. Составить код проекта рисование семи эллипсов
Применение цикла for: size(400, 500); background(0); noStroke();//фигуры не будут иметь внешней границы for (int i = 0; i < 250; i= i+40){ n=n+1; int r = 2 + round( random(40)); ellipse(round(random(400)), round(random(500)), r, r); } |
Применение системных функций и структуры выбора: void draw() { int r = 2 +round(random(20,40)); println("n= ", n, " r= ",r); ellipse(round(random(400)), round(random(500)), r, r); n=n+1; if( n>7) {stop();} |
Пример. Движение мяча
//Переменные определяющие местоположение и скорость мяча. int x = 100; int y = 100; int xz = 10; int yz = 4; //Настройка окна и фона. void setup() { size(400,400); background(255); } //Рисуем мяч. void draw() { background(255); //Перемещаем мяч в соответствии с его скоростью. x = x + xz; y = y + yz; //Проверка границ. (Отбивание от стенок). if ((x > width) || (x < 0)) // оператор логическое ИЛИ { xz = xz * -1; } if ((y > height) || (y < 0)) { yz = yz * -1; } stroke(0); fill(255,0,0); // Отображаем мяч по месту нахождения (х, у). ellipse(x,y,50,50); } |
|