Processing:Справочник языка Processing/PVector

Материал из Онлайн справочника
Версия от 17:47, 19 сентября 2023; Myagkij (обсуждение | вклад)
(разн.) ← Предыдущая версия | Текущая версия (разн.) | Следующая версия → (разн.)
Перейти к навигацииПерейти к поиску

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


PVector [1]

Обозначение

PVector

Описание

Класс для описания двух- или трехмерного вектора, в частности Евклидовый (также известной как геометрический) вектор. Вектор - это объект, который имеет как величину, так и направление. Однако в этом типе данных хранятся компоненты вектора (x, y для 2D и x, y, z для 3D). Доступ к величине и направлению можно получить с помощью методов mag() и heading().

Во многих примерах Processing вы увидите, что PVector используется для описания положения, скорости или ускорения. Например, если вы рассматриваете прямоугольник, движущийся по экрану, в любой момент времени он имеет положение (вектор, который указывает от начала координат к его местоположению), скорость (скорость, с которой позиция объекта изменяется в единицу времени, выраженная как вектор) и ускорение (скорость изменения скорости объекта за единицу времени, выраженная в виде вектора). Поскольку векторы представляют собой группы значений, мы не можем просто использовать традиционное сложение/умножение/ и т.д. Вместо этого нам нужно будет выполнить некоторую «векторную» математику, которая упрощается методами внутри класса PVector.

Поля

  • x - X-компонента вектора.
  • y - Y-компонента вектора.
  • z - Z-компонента вектора.

Методы

  • set() - Задание компонентов вектора.
  • random2D() - Создание нового 2D-единичного вектора с произвольным направлением.
  • random3D() - Создание нового 3D-единичного вектора с произвольным направлением.
  • fromAngle() - Создание нового 2D-единичного вектора под углом.
  • copy() - Получение копии вектора.
  • mag() - Вычисление величины вектора
  • magSq() - Вычисление квадрата величины вектора.
  • add() - Добавление x, y и z компоненты в вектор, один вектор в другой или два независимых вектора.
  • sub() - Вычитание x, y и z компоненты из вектора, одного вектора из другого или двух независимых векторов.
  • mult() - Умножение вектора на скаляр.
  • div() - Деление вектора на скаляр.
  • dist() - Вычисление расстояния между двумя точками.
  • dot() - Вычисление скалярного произведения двух векторов.
  • cross() - Вычисление и возврат перекрестного произведения.
  • normalize() - Нормализовать вектор до длины равной 1.
  • limit() - Ограничение величины вектора.
  • setMag() - Задание величины вектора.
  • heading() - Вычисление угла поворота для этого вектора.
  • rotate() - Поворот вектора на угол (только 2D).
  • lerp() - Линейная интерполяция вектора к другому вектору.
  • angleBetween() - Вычисление и возврат угла между двумя векторами.
  • array() - Возвращение представления вектора как массива с плавающей точкой.

Конструктор

PVector()
PVector(x, y, z)
PVector(x, y)

Параметры

x - тип float: x координата.
y - тип float: y координата.
z - тип float: z координата.

Пример

PVector v1, v2;

void setup() {
  noLoop();
  v1 = new PVector(40, 20);
  v2 = new PVector(25, 50); 
}

void draw() {
  ellipse(v1.x, v1.y, 12, 12);
  ellipse(v2.x, v2.y, 12, 12);
  v2.add(v1);
  ellipse(v2.x, v2.y, 24, 24);
}

См.также

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