Руководство для создания игр с помощью Flash. Векторы

Вектор является математическим объектом, который имеет как размеры (цифровое значение), так и направление.


Скорость является вектором, поскольку она имеет размерность и направление. Например, скорость 33 километра в час (км/ч) на юго-восток имеет величину 33 и направление на юго-восток.

Использованный выше пример, «33 км/ч на юго-восток» иначе может быть описан как «33 км/ч на 45 градусов».

Расположение может быть вектором, когда описывает положение точки по отношению к другой точке (представляют ли эти точки два объекта, или один объект в движении). Например, «Нью-Йорк находится в 500 милях севернее Вирджинии» или «Шар прокатился на 3 фута влево».

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

Вращение, когда изменяется с направлением, является вектором. Представьте наручные часы, вращаемые на 90° по часовой стрелке.

Многочисленные вектора (одного типа) могут быть сложены вместе для формирования одного результирующего вектора. Сложение векторов называется суперпозицией. Например, если воздушный шар плавает в воздухе, несколько сил проявляются на нем одновременно, такие как сила ветра, сила тяжести, подъемная сила (та сила, которая толкает шар вверх). С тремя силами, действующими на один шар, может оказаться нелегко определить, что он будет делать. Будет он подниматься или падать? Используя суперпозицию, вы можете сложить вектора вместе для нахождения результирующего вектора (и определения дальнейшего движения воздушного шара).

Вектора могут быть разложены на составляющие x и y (в этом контексте, слово составляющие относится к проекциям). Это называется разрешающим вектором. Разрешающий вектор является ничем иным как проекцией на оси координатной системы. Для сложения векторов вы должны:
  1. Разложить все вектора по их составляющие x и y. Они составляют две стороны прямоугольного треугольника.
  2. Сложите вместе все x составляющие.
  3. Сложите вместе все y составляющие.

Представьте воздушный шар в воздухе с тремя силами, воздействующими на него:
  • Сила гравитации со значением 10 и под углом 90°
  • Подъемная сила со значением 8 и под углом 270°
  • Сила ветра со значением 5 и под углом 45°

//Gravitational force
angle1 =90;
magnitude1 =10;

//Buoyant force
angle2 =270;
magnitude2 =8;

//Wind force
angle3 =45;
magnitude3 =5;

//Resolve the vectors into their components
x1 =magnitude1*Math.cos(angle1*Math.PI/180);
y1 =magnitude1*Math.sin(angle1*Math.PI/180);
x2 =magnitude2*Math.cos(angle2*Math.PI/180);
y2 =magnitude2*Math.sin(angle2*Math.PI/180);
x3 =magnitude3*Math.cos(angle3*Math.PI/180);
y3 =magnitude3*Math.sin(angle3*Math.PI/180);

//Add the x pieces
x =x1 +x2 +x3;
//Add the y pieces
y =y1 +y2 +y3;

trace("Force in the x direction="+x);
trace("Force in the y direction="+y);