一、一维噪声
一个好的随机数生成器能产生互不关联且毫无规律的随机数。然而,单独把随机性作为唯一原则是不够的,她并不完全符合自然界的特征。Perlin噪声就考虑到了这一点。Perlin噪声算法表现出了一定的自然性,因为它能生成符合自然排序(“平滑”)的伪随机数序列。如下图所示。
Processing内置了Perlin噪声算法的实现:noise()函数。noise()函数有三个参数,代表一维、二维和三维的随机数。
从概念上说,我们只需要用Perlin噪声算法得到0和画布宽度之间的的一个x坐标,但这并不是一个正确的实现。noise()函数的结果范围是固定的,他总是会返回一个介于0~1的结果。因此,在画布大小过大时,我们需要在噪声结果后乘上画布大小,起到放大效果。在后边也会通过map()函数来改变结果范围。
二、例子一
(1)初始化所需噪声变量。
float xoff=0.0;//噪声的x坐标
float xincrement=0.01;//噪声的增值
(2)draw()函数部分。
float n=noise(xoff)*width;//通过noise()噪声取到圆心x坐标的随机值。
xoff=xoff+xincreament;//增大xoff,不断改变noise()的传入值,获