随着 z 偏移量的变化,不同 x、y 维度的 Perlin 噪声值似乎都接近 0.5

Perlin noise values in different x, y dimensions all seems to approach 0.5 together as z offset is changed

我用 Perlin 噪声创建了这个小小的动画贝塞尔草图。为什么所有的点(在不同的 2d space 中)以看似规则的间隔同时接近 0 的任何想法?

z 偏移每帧变化 .005

https://www.khanacademy.org/computer-programming/animated-beziers/4620624260136960

代码看起来像这样...

noFill();
var noiseY = 0;

var myNoise = function ( x, y ) {
    return map( noise( x, y, noiseY ), 0, 1, -160, 560 );
};

var draw = function () {
    noiseY += 0.005;
    background( 255 );
    beginShape();
    vertex(
        myNoise( 100, 0 ),
        myNoise( 100, 10000 )
    );
    for ( var i = 0; i < 7; i ++ ) {
        bezierVertex(
            myNoise( 100 * i, 20000 ),
            myNoise( 100 * i, 30000 ),
            myNoise( 100 * i, 40000 ),
            myNoise( 100 * i, 50000 ),
            myNoise( 100 * i, 60000 ),
            myNoise( 100 * i, 70000 )
        );
    }
    endShape();
};

draw() 函数以 60Hz 的频率反复执行,显示动画贝塞尔曲线。

这似乎特定于 Processing.js 或可汗学院的 Processing.js 版本。

如果我 运行 您的代码使用 P5.js web editor,我没有看到问题。

请注意 Processing.js 不再维护,新项目应该使用 P5.js 或 Processing 的 Java 模式。

如果您想查明发生这种情况的原因,您应该尝试 debugging your code。比如点数趋近0时noiseY的值是多少?

但如果我是你,我会切换到更新的框架,例如 P5.js。