Суббота, 21.09.2019, 09:48
Главная | Регистрация | Вход Приветствую Вас Гость | RSS


Меню сайта


Статистика

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


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


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

Программный код. Использование переменных

Переменные сохраняют свое значение в памяти и поэтому могут быть использованы в программе неоднократно. Переменная может использоваться в одной программе много раз и изменять свое значение во время выполнения программы.

Главная причина для использования переменных - избежать повторения фрагментов кода.

Если вы вводите одно и то же число более одного раза, рассмотрите возможность применения переменной вместо него; это сделает код более наглядным и удобным для внесения изменений.

 

Повторное использование значений

Если вы создадите переменные для хранения y-координаты и диаметра для кругов из следующего примера, то для параметров функции эллипса будет использована одна и та же величина:

 

size(480, 120);
smooth();
int y = 60;
int d = 80;
ellipse(75, y, d, d);
// Левый
ellipse(175, y, d, d); // Центральный
ellipse(275, y, d, d); // Правый

 

Изменяем значение переменной
Простое изменение переменных y и d видоизменяет все три эллипса:

size(480, 120);
smooth();
int y = 100;
int d = 130;
ellipse(75, y, d, d); /
/ Левый
ellipse(175, y, d, d); // Центральный
ellipse(275, y, d, d); // Правый

 

 

Учимся перемещать объекты на экране, пользоваться командой random для генерирования случайных чисел.

Напишем  код проекта.

  1. Объявим наши переменные в коде программы:

int x=500;//объявление переменной х, присваивание значения
int y=300; //объявление переменной у, присваивание значения

//содержимое системной функции setup() выполняется один раз
void setup() {
size(1000,600);
//установка размера окна
}

//содержимое  функции draw()  выполняется до тех пор, пока мы не остановим программу

void draw() {
ellipse(x,y,100,100);
// выполняется прорисовка эллипса
}

Системная функция  void setup().

Рекомендуется писать ее первой. Функция setup() вызывается один раз при запуске скетча.

Эта функция используется для установки размера окна скетча, присвоения значений некоторым переменным, загрузки изображений и т.д

Системная функция void draw().

Эта функция является основой для построения любой анимации.

Её особенностью является то, что она автоматически вызывается при каждом обновлении фреймбуфера. Функция draw() работает непрерывно, с частотой 60 кадров с секунду.

2. Теперь допишем команду  х = х +1; и посмотрим что у нас произойдет:

 

void setup(){
size(1000,600);
//установка размера окна
frameRate(4); // задаем скорость смены кадров - 4-е кадра в секунду
}
 

void draw(){
x = x +1;  
// от кадра к кадру значение переменной х увеличивается на единицу: 501, 502, 503 ....

// выполняется прорисовка эллипса, меняющего свое положение относительно оси ОХ

ellipse(x,y,100,100); 

//выполняем визуализацию значения переменной х от кадра к кадру

println("x =  ", x); 
}

Вывод :

  • Эллипс начал смещаться вправо по оси Х. 
  • Так как центр эллипса задается переменными  x и y, а переменную х мы увеличиваем на единицу каждый цикл

 

3. Зададим фон  - команда background(0); Цвет –любой, допустим - background(24,114,91);

 

void draw(){
  background(24,114,91);
/* в очередном кадре выполняется перерисовка фона окна в данном случае служит закраской предыдущего рисунка*/
  
  x = x +1;  /
/ от кадра к кадру значение переменной х увеличивается на единицу

// выполняется прорисовка эллипса, меняющего свое положение относительно оси ОХ

 ellipse(x,y,100,100); 

}

 

Вывод.

background(24,114,91);

  • задает цвет фона,
  • в данном случае служит закраской предыдущего рисунка, так как каждый цикл последовательно выполнялись команды:

Таким образом  каждый цикл обновляется фон и предыдущий рисунок как бы невидим. На самом деле он есть, но уже за фоном

 

4. Добавим смещение по у: y = y + 1; Смещение пошло по диагонали.

 

 

void draw(){
  background(24,114,91);
/* в очередном кадре выполняется перерисовка фона окна в данном случае служит закраской предыдущего рисунка*/
  
  x = x +1;  
// от кадра к кадру значение переменной х увеличивается на единицу

 y = y + 1; //Смещение пошло по диагонали
выполняется прорисовка эллипса, меняющего свое положение относительно оси ОХ и ОУ

 ellipse(x,y,100,100);
}

 

5. Уберем смещение х.

  • Движение эллипса  - по вертикали – вниз.
  • Если поменяем знак – смещение будет в другую сторону

 

Изучим команду для генерации случайных чиселrandom().

Случайные числа

В отличие от плавного, линейного движения, характерного для компьютерной графики, движение в реальном мире может быть любым.

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

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

  • Функция random() всегда возвращает числа типа float.

В скобках указывается диапазон значений который будет выбираться случайным образом.

  1. Создадим несколько переменных (x  и y  уже присутствуют в программе) : float t; float z; float p;
  1.  Учтем, что максимальное значение  х = 1000, у = 600 и зададим значение аргументу функции random() для х и у : random(1000) и random(600)

    3. Для команды    random  нужна переменная   float :      float  random;

 

    6. Изменим тип переменных х, у и уберем первоначальные значения: float  х; float  у;
 

float random;//объявление переменных 
float x;
float y; 
float p;
float t;
float z;

void setup(){
size(1000,600); /
/установка размера окна
frameRate(4); // задаем скорость смены кадров - 4-е кадра в секунду
}

void draw(){
  background(24,114,91) ;
/* в очередном кадре выполняется перерисовка фона окна в данном случае служит закраской предыдущего рисунка*/
  
  x = random(1000);  // случайное значение для х
 y = random(600); //случайное значение для у

 ellipse(x,y,100,100);
}
Вывод: движение эллипса – хаотично. У нас появляются эллипсы, причем везде – по всей области экрана.

 

 7. Уберем фон из функции draw() а наши эллипсы закрасим – функция fill(t, z, p);

 

float random;//объявление переменных 
float x;
float y; 
float p;
float t;
float z;

void setup(){
size(1000,600);
//установка размера окна
background(24,114,91);//цвет фона окна
frameRate(4); // задаем скорость смены кадров - 4-е кадра в секунду
}

void draw(){

 x = random(1000);  // случайное значение для х
 y = random(600); //случайное значение для у
 
 fill(t,z,p);// заливка фигуры

 ellipse(x,y,100,100);
}

 

 8. Внесем изменения:

 

float random;//объявление переменных 
float x;
float y; 
float p;
float t;
float z;

void setup(){
size(500,300); //установка размера окна
background(24,114,91);//цвет фона окна
frameRate(4); // задаем скорость смены кадров - 4-е кадра в секунду
}

void draw(){

 x = random(500);  // случайное значение для х
 y = random(300); //случайное значение для у
 t = random(255); //случайное значение для t
 z = random(255); //случайное значение для z
 p = random(255); //случайное значение для p
 fill(t,z,p);// заливка фигуры

 ellipse(x,y,50,50);
}

  Или

Внесем изменения в команду fill:  fill(random(255), random(255), random(255));

PS!!!

Чтобы использовать одну и ту же последовательность случайных чисел при каждом запуске программы, существует функция randomSeed().

 

Форма входа
Поиск
Календарь
«  Сентябрь 2019  »
ПнВтСрЧтПтСбВс
      1
2345678
9101112131415
16171819202122
23242526272829
30
Архив записей
Друзья сайта
  • Официальный блог
  • Сообщество uCoz
  • FAQ по системе
  • Инструкции для uCoz

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