随着z偏移的更改,不同x,y维度的Perlin噪声值似乎都接近0.5

时间:2018-11-15 09:28:11

标签: p5.js processing.js perlin-noise

我用Perlin噪声创建了这个动画的Bezier小草图。有什么想法为什么所有的点(在不同的2d空间中)都以看似规则的间隔一次接近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的频率反复执行,显示动画的贝塞尔曲线。

1 个答案:

答案 0 :(得分:1)

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

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

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

如果您想找出发生这种情况的原因,则应尝试debugging your code。例如,当点接近0时noiseY的值是什么?

但是,如果我是您,我将切换到P5.js之类的较新框架。