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

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску
 
Нет описания правки
Строка 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" enclose="div">
<syntaxhighlight lang="c">
noise()
noise()
</syntaxhighlight>
</syntaxhighlight>
Строка 26: Строка 26:
==Синтаксис==
==Синтаксис==


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


<syntaxhighlight lang="c" enclose="div">
<syntaxhighlight lang="c">
x - тип float: x-координата в шумовом пространстве
x - тип float: x-координата в шумовом пространстве
y - тип float: y-координата в шумовом пространстве
y - тип float: y-координата в шумовом пространстве
Строка 42: Строка 42:
==Возвращаемое значение==
==Возвращаемое значение==


<syntaxhighlight lang="c" enclose="div">
<syntaxhighlight lang="c">
float
float
</syntaxhighlight>
</syntaxhighlight>
Строка 50: Строка 50:
===№1===
===№1===


<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">
float xoff = 0.0;
float xoff = 0.0;


Строка 63: Строка 63:
===№2===
===№2===


<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">
float noiseScale = 0.02;
float noiseScale = 0.02;


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

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

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



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

См.также

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