Processing, noise()
用法介绍。
用法
noise(x)
noise(x, y)
noise(x, y, z)
参数
x
(float)
噪声空间中的 x 坐标y
(float)
噪声空间中的 y 坐标z
(float)
噪声空间中的 z 坐标
返回
float
说明
返回指定坐标处的 Perlin 噪声值。 Perlin 噪声是一种随机序列生成器,它产生比标准random()
函数更自然、更和谐的数字序列。它由 Ken Perlin 在 1980 年代开发,并已用于图形应用程序以生成程序纹理、形状、地形和其他看似有机的形式。
与random()
函数相比,Perlin 噪声定义在无限的 n 维空间中,其中每对坐标对应一个固定的 semi-random 值(仅在程序的生命周期内固定)。结果值将始终介于 0.0 和 1.0 之间。根据给定的坐标数,处理可以计算 1D、2D 和 3D 噪声。可以通过在噪声空间中移动来设置噪声值,如上面的第一个示例所示。第二和第三维度也可以解释为时间。
就函数对频率的使用而言,实际的噪声结构类似于音频信号的结构。与物理学中的谐波概念类似,Perlin 噪声是在几个八度音阶上计算的,这些八度音阶相加得到最终结果。
另一种调整结果序列字符的方法是输入坐标的比例。由于函数在无限空间内工作,因此坐标值无关紧要;只有连续坐标之间的 distance
很重要(例如在循环中使用 noise()
时)。作为一般规则,坐标之间的差异越小,得到的噪声序列越平滑。 0.005-0.03 的步长最适合大多数应用程序,但这会因用途而异。
关于在处理中实现噪声的准确性一直存在争议。澄清一下,它是 1983 年“经典 Perlin 噪声”的实现,而不是 2001 年更新的 "simplex noise" 方法。
例子
float xoff = 0.0;
void draw() {
background(204);
xoff = xoff + .01;
float n = noise(xoff) * width;
line(n, 0, n, height);
}
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 noiseSeed()用法及代码示例
- Processing noiseDetail()用法及代码示例
- Processing normal()用法及代码示例
- Processing norm()用法及代码示例
- Processing noFill()用法及代码示例
- Processing noTint()用法及代码示例
- Processing noStroke()用法及代码示例
- Processing noClip()用法及代码示例
- Processing noSmooth()用法及代码示例
- Processing noLoop()用法及代码示例
- Processing noCursor()用法及代码示例
- Processing new用法及代码示例
- Processing nf()用法及代码示例
- Processing null用法及代码示例
- Processing nfp()用法及代码示例
- Processing nfs()用法及代码示例
- Processing nfc()用法及代码示例
- Processing FFT用法及代码示例
- Processing SawOsc.pan()用法及代码示例
- Processing FloatDict用法及代码示例
- Processing FFT.stop()用法及代码示例
- Processing join()用法及代码示例
- Processing () (parentheses)用法及代码示例
- Processing Pulse用法及代码示例
- Processing PShader用法及代码示例
注:本文由纯净天空筛选整理自processing.org大神的英文原创作品 noise()。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。