Processing:Справочник языка Processing/PVector/lerp(): различия между версиями
Myagkij (обсуждение | вклад) |
Myagkij (обсуждение | вклад) Нет описания правки |
||
(не показаны 2 промежуточные версии 1 участника) | |||
Строка 1: | Строка 1: | ||
{{Processing панель перехода}} | {{Processing панель перехода}} | ||
{{Myagkij-редактор}} | {{Myagkij-редактор}} | ||
= lerp() <ref>[https://processing.org/reference/PVector_lerp_.html processing.org - lerp()]</ref>= | = lerp() <ref>[https://processing.org/reference/PVector_lerp_.html processing.org - lerp()]</ref>= | ||
Строка 8: | Строка 6: | ||
==Обозначение== | ==Обозначение== | ||
<syntaxhighlight lang="c | <syntaxhighlight lang="c"> | ||
lerp() | lerp() | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Строка 20: | Строка 18: | ||
==Синтаксис== | ==Синтаксис== | ||
<syntaxhighlight lang="c | <syntaxhighlight lang="c"> | ||
.lerp(v, amt) | .lerp(v, amt) | ||
.lerp(v1, v2, amt) | .lerp(v1, v2, amt) | ||
Строка 28: | Строка 26: | ||
==Параметры== | ==Параметры== | ||
<syntaxhighlight lang="c | <syntaxhighlight lang="c"> | ||
v - тип PVector: вектор для интерполяции | v - тип PVector: вектор для интерполяции | ||
amt - тип float: значение интерполяции; некоторое значение между 0.0 (старый вектор) и 1.0 (новый вектор). 0,1 очень близко к старому вектору; 0,5 находится между ними. | amt - тип float: значение интерполяции; некоторое значение между 0.0 (старый вектор) и 1.0 (новый вектор). 0,1 очень близко к старому вектору; 0,5 находится между ними. | ||
Строка 40: | Строка 38: | ||
==Возвращаемое значение== | ==Возвращаемое значение== | ||
<syntaxhighlight lang="c | <syntaxhighlight lang="c"> | ||
PVector | PVector | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Строка 48: | Строка 46: | ||
===№1=== | ===№1=== | ||
<syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS | <syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS"> | ||
// Нестатическая версия (интерполяция на конкретном векторе) | // Нестатическая версия (интерполяция на конкретном векторе) | ||
Строка 64: | Строка 62: | ||
===№2=== | ===№2=== | ||
<syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS | <syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS"> | ||
// Статическая версия (возвращает новый вектор) | // Статическая версия (возвращает новый вектор) | ||
Строка 81: | Строка 79: | ||
===№3=== | ===№3=== | ||
<syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS | <syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS"> | ||
// Нестатическая версия (интерполяция на конкретном векторе) | // Нестатическая версия (интерполяция на конкретном векторе) | ||
Строка 101: | Строка 99: | ||
<references /> | <references /> | ||
{{Навигационная таблица/Портал/Processing}} | |||
{{Навигационная таблица/ |
Текущая версия от 17:50, 19 сентября 2023
Содержание | Среда разработки Processing | Справочник языка Processing | Библиотеки | Примеры | Режимы программирования |
lerp() [1]
Обозначение
lerp()
Описание
Вычисляет линейную интерполяцию от одного вектора к другому вектору. (Точно так же, как обычная функция lerp(), но для векторов.)
Обратите внимание, что существует одна статическая версия этого метода и две нестатические версии. Статическая версия, lerp(v1, v2, amt) получает два вектора для интерполяции и возвращает новый объект PVector. Статическая версия использует прямую ссылку на класс PVector. (см. приведенный средний пример.) Нестатические версии, lerp(v, amt) и lerp(x, y, z, amt) не создают новый объект PVector, а преобразуют значения данного объекта PVector, который их вызвал. Эти нестатические версии выполняют одну и ту же операцию, но первая берет другой вектор в качестве входных данных, а последний принимает три значения с плавающей запятой.(см. верхний и нижний примеры, соответственно.)
Синтаксис
.lerp(v, amt)
.lerp(v1, v2, amt)
.lerp(x, y, z, amt)
Параметры
v - тип PVector: вектор для интерполяции
amt - тип float: значение интерполяции; некоторое значение между 0.0 (старый вектор) и 1.0 (новый вектор). 0,1 очень близко к старому вектору; 0,5 находится между ними.
v1 - тип PVector: вектор, с которого начинается интерполяция
v2 - тип PVector: вектор для интерполяции
x - тип float: x-компонент для интерполяции
y - тип float: y-компонент для интерполяции
z - тип float: z-компонент для интерполяции
Возвращаемое значение
PVector
Пример
№1
// Нестатическая версия (интерполяция на конкретном векторе)
PVector current;
PVector target;
void setup() {
current = new PVector(0.0, 0.0);
target = new PVector(100.0, 100.0);
current.lerp(target, 0.5);
println(current); // Печатаем в консоли "[ 50.0, 50.0, 0.0 ]"
}
№2
// Статическая версия (возвращает новый вектор)
PVector start;
PVector end;
PVector middle;
void setup() {
start = new PVector(0.0, 0.0);
end = new PVector(100.0, 100.0);
middle = PVector.lerp(start, end, 0.5);
println(middle); // Печатаем в консоли "[ 50.0, 50.0, 0.0 ]"
}
№3
// Нестатическая версия (интерполяция на конкретном векторе)
PVector v;
void setup() {
v = new PVector(0.0, 0.0);
}
void draw() {
v.lerp(mouseX, mouseY, 0.0, 0.1);
ellipse(v.x, v.y, 20, 20);
}
См.также
Внешние ссылки
Примеры на Processing | |
---|---|
Основы |
|
Продвинутые графические эффекты |
|
Примеры из сторонних библиотек |