Processing:Справочник языка Processing/noise(): различия между версиями
Myagkij (обсуждение | вклад) |
Нет описания правки |
||
Строка 2: | Строка 2: | ||
{{Myagkij-редактор}} | {{Myagkij-редактор}} | ||
= noise() <ref>[https://processing.org/reference/noise_.html processing.org - noise()]</ref>= | = noise() <ref>[https://processing.org/reference/noise_.html processing.org - noise()]</ref>= | ||
Строка 8: | Строка 8: | ||
==Обозначение== | ==Обозначение== | ||
<syntaxhighlight lang="c | <syntaxhighlight lang="c"> | ||
noise() | noise() | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Строка 26: | Строка 26: | ||
==Синтаксис== | ==Синтаксис== | ||
<syntaxhighlight lang="c | <syntaxhighlight lang="c"> | ||
noise(x) | noise(x) | ||
noise(x, y) | noise(x, y) | ||
Строка 34: | Строка 34: | ||
==Параметры== | ==Параметры== | ||
<syntaxhighlight lang="c | <syntaxhighlight lang="c"> | ||
x - тип float: x-координата в шумовом пространстве | x - тип float: x-координата в шумовом пространстве | ||
y - тип float: y-координата в шумовом пространстве | y - тип float: y-координата в шумовом пространстве | ||
Строка 42: | Строка 42: | ||
==Возвращаемое значение== | ==Возвращаемое значение== | ||
<syntaxhighlight lang="c | <syntaxhighlight lang="c"> | ||
float | float | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Строка 50: | Строка 50: | ||
===№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"> | ||
float xoff = 0.0; | float xoff = 0.0; | ||
Строка 63: | Строка 63: | ||
===№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"> | ||
float noiseScale = 0.02; | float noiseScale = 0.02; | ||
Строка 105: | Строка 105: | ||
|Высота логотипа издателя для schemaNewsArticle=45 | |Высота логотипа издателя для schemaNewsArticle=45 | ||
}} | }} | ||
{{Навигационная таблица/ | {{Навигационная таблица/Портал/Processing}} |
Версия от 12:10, 20 мая 2023
Содержание | Среда разработки Processing | Справочник языка Processing | Библиотеки | Примеры | Режимы программирования |
noise() [1]
Обозначение
noise()
Описание
Возвращает шум Перлина в указанных координатах. Шум Перлина представляет собой генератор случайной последовательности, создающий более естественную гармоническую последовательность чисел, чем стандартная функция random(). Он был разработан Кеном Перлином в 1980-х годах и использовался в графических приложениях для создания процедурных текстур, форм, ландшафтов и других, казалось бы, органических форм.
В отличие от функции random(), шум Перлина определяется в бесконечном n-мерном пространстве, в котором каждая пара координат соответствует фиксированному полуслучайному значению (фиксированному только для времени работы программы). Результирующее значение всегда будет между 0.0 и 1.0. Processing может вычислять 1D, 2D и 3D шум, в зависимости от количества заданных координат. Значение шума можно анимировать, перемещаясь через шумовое пространство, как показано в первом примере. Второе и третье измерения также можно интерпретировать как время.
Фактическая структура шума аналогична структуре звукового сигнала в отношении использования частот функциями. Подобно понятию гармоник в физике, шум Перлина вычисляется на несколько октав, которые объединяются для окончательного результата.
Другим способом настройки характера результирующей последовательности является масштаб входных координат. Поскольку функция работает в бесконечном пространстве, значение координат не имеет значения как таковое; важно только расстояние между последовательными координатами (например, при использовании noise() в цикле). Как правило, чем меньше разница между координатами, тем более плавная результирующая шумовая последовательность. Шаги 0.005-0.03 работают лучше всего для большинства приложений, но будет отличаться в зависимости от использования.
Были проведены споры о точности внедрения шума в Processing . Для уточнения, это реализация «классического шума Перлина» 1983 года, а не новый метод «симплекс-шума» 2001 года.
Синтаксис
noise(x)
noise(x, y)
noise(x, y, z)
Параметры
x - тип float: x-координата в шумовом пространстве
y - тип float: y-координата в шумовом пространстве
z - тип float: z-координата в шумовом пространстве
Возвращаемое значение
float
Пример
№1
float xoff = 0.0;
void draw() {
background(204);
xoff = xoff + .01;
float n = noise(xoff) * width;
line(n, 0, n, height);
}
№2
float noiseScale = 0.02;
void draw() {
background(0);
for (int x=0; x < width; x++) {
float noiseVal = noise((mouseX+x)*noiseScale, mouseY*noiseScale);
stroke(noiseVal*255);
line(x, mouseY+noiseVal*80, x, height);
}
}
См.также
Внешние ссылки
Примеры на Processing | |
---|---|
Основы |
|
Продвинутые графические эффекты |
|
Примеры из сторонних библиотек |