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

Processing:Примеры/Движение объекта по кривой

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


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

Контакты:

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


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


Описание[1]

В этом скетче-примере эллипс движется по кривой, рассчитываемой с помощью формулы y = x^4. Кликните мышкой в какой-либо части экрана, чтобы эллипс переместился на это место.

Пример

  1. float beginX = 20.0;  // начальная координата X
  2. float beginY = 10.0;  // начальная координата Y
  3. float endX = 570.0;   // конечная координата X
  4. float endY = 320.0;   // конечная координата Y
  5. float distX;          // дистанция движения по оси X
  6. float distY;          // дистанция движения по оси Y
  7. float exponent = 4;   // переменная для расчета кривой
  8. float x = 0.0;        // текущая координата X
  9. float y = 0.0;        // текущая координата Y
  10. float step = 0.01;    // шаг пути
  11. float pct = 0.0;      // пройдено процентов пути (от 0.0 до 1.0)
  12.  
  13. void setup() {
  14.   size(640, 360);
  15.   noStroke();
  16.   distX = endX - beginX;
  17.   distY = endY - beginY;
  18. }
  19.  
  20. void draw() {
  21.   fill(0, 2);
  22.   rect(0, 0, width, height);
  23.   pct += step;
  24.   if (pct < 1.0) {
  25.     x = beginX + (pct * distX);
  26.     y = beginY + (pow(pct, exponent) * distY);
  27.   }
  28.   fill(255);
  29.   ellipse(x, y, 20, 20);
  30. }
  31.  
  32. void mousePressed() {
  33.   pct = 0.0;
  34.   beginX = x;
  35.   beginY = y;
  36.   endX = mouseX;
  37.   endY = mouseY;
  38.   distX = endX - beginX;
  39.   distY = endY - beginY;
  40. }

См.также

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

  1. processing.org - Moving On Curves