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

Processing:Примеры/Скачущий мяч при помощи векторов

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


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

Контакты:

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


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


Описание[1]

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

О том, как симулировать движение объекта при помощи векторов, смотрите в примере «Ускорение при помощи векторов».

Пример

  1. /**
  2.  * Bouncing Ball with Vectors
  3.  * by Daniel Shiffman.  
  4.  *
  5.  * Demonstration of using vectors to control motion of body
  6.  * This example is not object-oriented
  7.  * See AccelerationWithVectors for an example of how to simulate motion using vectors in an object
  8.  */
  9.  
  10. var position;  // position of shape
  11. var velocity;  // Velocity of shape
  12. var gravity;   // Gravity acts at the shape's acceleration
  13.  
  14. function setup() {
  15.   var canvas = createCanvas(640, 360);
  16.   canvas.parent("p5container");
  17.   position = createVector(100,100);
  18.   velocity = createVector(1.5,2.1);
  19.   gravity = createVector(0,0.2);
  20.  
  21. }
  22.  
  23. function draw() {
  24.   background(0);
  25.  
  26.   // Add velocity to the position.
  27.   position.add(velocity);
  28.   // Add gravity to velocity
  29.   velocity.add(gravity);
  30.  
  31.   // Bounce off edges
  32.   if ((position.x > width) || (position.x < 0)) {
  33.     velocity.x = velocity.x * -1;
  34.   }
  35.   if (position.y > height) {
  36.     // We're reducing velocity ever so slightly
  37.     // when it hits the bottom of the window
  38.     velocity.y = velocity.y * -0.95;
  39.     position.y = height;
  40.   }
  41.  
  42.   // Display circle at position vector
  43.   stroke(255);
  44.   strokeWeight(2);
  45.   fill(127);
  46.   ellipse(position.x,position.y,48,48);
  47. }

См.также

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

  1. processing.org - Bouncing Ball with Vectors by Daniel Shiffman.