Processing:Примеры/Синус и косинус: различия между версиями

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску
Нет описания правки
 
Строка 132: Строка 132:
{{Навигационная таблица/Справочник языка Processing}}
{{Навигационная таблица/Справочник языка Processing}}
{{Навигационная таблица/Processing/Примеры}}
{{Навигационная таблица/Processing/Примеры}}
{{Навигационная таблица/Телепорт}}

Версия от 08:14, 7 мая 2022


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


Черновик


Описание[1]

Линейное движение при помощи функций sin() и cos().

В этом скетче-примере функциям sin() и cos() «скармливаются» значения между «0» и «PI*2» (то есть два числа Пи, что составляет примерно «6,28»), после чего они возвращают значения в диапазоне от «-1» до «1». Затем эти значения масштабируются к другому числовому диапазону, чтобы эллипсы двигались более заметно.

Пример

float x1, x2, y1, y2;
float angle1, angle2;
float scalar = 70;

void setup() {
  size(640, 360);
  noStroke();
  rectMode(CENTER);
}

void draw() {
  background(0);

  float ang1 = radians(angle1);
  float ang2 = radians(angle2);

  x1 = width/2 + (scalar * cos(ang1));
  x2 = width/2 + (scalar * cos(ang2));
  
  y1 = height/2 + (scalar * sin(ang1));
  y2 = height/2 + (scalar * sin(ang2));
  
  fill(255);
  rect(width*0.5, height*0.5, 140, 140);

  fill(0, 102, 153);
  ellipse(x1, height*0.5 - 120, scalar, scalar);
  ellipse(x2, height*0.5 + 120, scalar, scalar);
  
  fill(255, 204, 0);
  ellipse(width*0.5 - 120, y1, scalar, scalar);
  ellipse(width*0.5 + 120, y2, scalar, scalar);

  angle1 += 2;
  angle2 += 3;
  
}

См.также

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