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

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску
 
Нет описания правки
Строка 2: Строка 2:
{{Myagkij-редактор}}
{{Myagkij-редактор}}


{{Черновик}}
 


=  PVector <ref>[https://processing.org/reference/PVector.html processing.org - PVector]</ref>=
=  PVector <ref>[https://processing.org/reference/PVector.html processing.org - PVector]</ref>=
Строка 8: Строка 8:
==Обозначение==
==Обозначение==


<syntaxhighlight lang="c" enclose="div">
<syntaxhighlight lang="c">
PVector
PVector
</syntaxhighlight>
</syntaxhighlight>
Строка 52: Строка 52:
==Конструктор==
==Конструктор==


<syntaxhighlight lang="c" enclose="div">
<syntaxhighlight lang="c">
PVector()
PVector()
PVector(x, y, z)
PVector(x, y, z)
Строка 60: Строка 60:
==Параметры==
==Параметры==


<syntaxhighlight lang="c" enclose="div">
<syntaxhighlight lang="c">
x - тип float: x координата.
x - тип float: x координата.
y - тип float: y координата.
y - тип float: y координата.
Строка 68: Строка 68:
==Пример==
==Пример==


<syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS" enclose="div">
<syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS">
PVector v1, v2;
PVector v1, v2;


Строка 107: Строка 107:
|Высота логотипа издателя для schemaNewsArticle=45
|Высота логотипа издателя для schemaNewsArticle=45
}}
}}
{{Навигационная таблица/Справочник языка Processing}}
{{Навигационная таблица/Портал/Processing}}

Версия от 12:05, 20 мая 2023

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



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);
}

См.также

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