Processing:Справочник языка Processing/PVector: различия между версиями
Myagkij (обсуждение | вклад) |
Нет описания правки |
||
Строка 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 | <syntaxhighlight lang="c"> | ||
PVector | PVector | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Строка 52: | Строка 52: | ||
==Конструктор== | ==Конструктор== | ||
<syntaxhighlight lang="c | <syntaxhighlight lang="c"> | ||
PVector() | PVector() | ||
PVector(x, y, z) | PVector(x, y, z) | ||
Строка 60: | Строка 60: | ||
==Параметры== | ==Параметры== | ||
<syntaxhighlight lang="c | <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 | <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}} |
Версия от 12:05, 20 мая 2023
Содержание | Среда разработки Processing | Справочник языка Processing | Библиотеки | Примеры | Режимы программирования |
PVector [1]
Обозначение
PVector
Описание
Класс для описания двух- или трехмерного вектора, в частности Евклидовый (также известной как геометрический) вектор. Вектор - это объект, который имеет как величину, так и направление. Однако в этом типе данных хранятся компоненты вектора (x, y для 2D и x, y, z для 3D). Доступ к величине и направлению можно получить с помощью методов mag() и heading().
Во многих примерах Processing вы увидите, что PVector используется для описания положения, скорости или ускорения. Например, если вы рассматриваете прямоугольник, движущийся по экрану, в любой момент времени он имеет положение (вектор, который указывает от начала координат к его местоположению), скорость (скорость, с которой позиция объекта изменяется в единицу времени, выраженная как вектор) и ускорение (скорость изменения скорости объекта за единицу времени, выраженная в виде вектора). Поскольку векторы представляют собой группы значений, мы не можем просто использовать традиционное сложение/умножение/ и т.д. Вместо этого нам нужно будет выполнить некоторую «векторную» математику, которая упрощается методами внутри класса PVector.
Поля
Методы
- 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);
}
См.также
Внешние ссылки
Примеры на Processing | |
---|---|
Основы |
|
Продвинутые графические эффекты |
|
Примеры из сторонних библиотек |