Вторник, 12.11.2024, 03:57
Главная | Регистрация | Вход Приветствую Вас Гость | RSS


Меню сайта


Статистика

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


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


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

Применение базовых алгоритмических структур в Processing

Проект в среде Processing располагается в функциях:

  • setup () - выполняется один раз при запуске программы

и

  • draw () - выполняется постоянно в цикле, до завершения работы программы.

В функции setup () происходят начальные настройки, а функцию draw () удобно использовать для обработки постоянного изменения значений переменных, в частности системных.

 

Применение базовых алгоритмических структур (циклов и выбора) для организации движения

Цикл – это такая команда (оператор) языка, что дает возможность объяснить компьютеру сколько раз надо выполнить некое действие или компанию действий.

 

for (init; test; update) {

statements

}

Выражение:

  • init обычно объявляет новую переменную для использования в цикле for и присваивает ей значение. Как правило, используется переменная с именем i, но вы можете использовать любую другую;
  • test оценивает значение переменной, это всегда выражение отношения, сравнивающее два значения оператором сравнения.;

 update изменяет это значение.

Пример цикла for:


  По-русски конструкция цикла звучит как:

  • «Выполнять всё, что находится в фигурных скобках {...}, пока целочисленная переменная i меньше 2000, начальное значение которой 0, а приращение 1»

Сохраняя английский порядок, но русскими словами:

  • «Для целочисленной переменной i, которой присвоено начальное значение 0 и до тех пор, пока её значение меньше 2000 – увеличивать её значение на 1 и выполнять все действия указанные в фигурных скобках {...}».

И всё это записывается просто как: for (int i = 0; i < 2000; i++) {...}, где:

  • int тип переменной и сокращенная запись от integer (целое);

· i = 0 присвоить переменной i начальное значение 0;

· i < 2000 так цикл выполняется 2000 раз. Пока выглядит загадочно, потом разъяснится.

  • i++ сокращение от i = i + 1, что значит к переменной i прибавить единицу и

результат сохранить в ней же.

 

Цикл  while(){…} 

 

 

Выбор:

Примеры:

1. if (z > 100) {z -= 0.5;} else if (z< 50) {z += 2;}

2. if(
n>7) {stop();}


3. if ((x > width) || (x < 0)) {    …  }

4. if(keyPressed==true)  если нажата либо-какая клавиша
{

saveFrame("images/urok_####.png");// выполнить запись кадра(фрейма)  в папку images

}

5. if (frameCount < 60) /*программа работает в частотой 30 кадров в секунду и завершается после 60 кадров */

{
saveFrame("frames/SaveExample-####.tif");  

}

 

 

Задание. Составить код проекта рисование семи эллипсов

Применение цикла for:
int n=0;

size(400, 500);

background(0);

noStroke();//фигуры не будут иметь внешней границы

for (int i = 0; i < 250; i= i+40){

n=n+1;

int r = 2 + round( random(40));
 
 println("n=   ", n,"   i=  ", i, “    r=   “,r);

ellipse(round(random(400)), round(random(500)), r, r);

}
 

Применение системных функций и структуры выбора:
int n=1;

void setup(){
size(400,500);
background(0);
  
noStroke();//фигуры не будут иметь внешней границы
}

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);

}

 

Форма входа
Поиск
Календарь
«  Ноябрь 2024  »
ПнВтСрЧтПтСбВс
    123
45678910
11121314151617
18192021222324
252627282930
Архив записей
Друзья сайта
  • Официальный блог
  • Сообщество uCoz
  • FAQ по системе
  • Инструкции для uCoz

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