3

科学的な目的で、古典的なパーリンノイズ(src:http: //mrl.nyu.edu/~perlin/doc/oscar.html#noise)をJavaScriptに移植しようとしています。理由はわかりませんが、私のコードはランダムなパターンではなく周期的なパターンを生成します。

キャンバスに描画された例を含む完全なコードをここで見つけることができます(1次元に分解):http://jsfiddle.net/YL77D/

問題は「noise1」関数内にあると思います。

sx = s_curve(rx0);

u = rx0 * g1[ p[ bx0 ] ];
v = rx1 * g1[ p[ bx1 ] ];

return lerp(sx, u, v);

xシードが10.1、10.2、10.3などの場合、uとvは同じ数である必要があると思います(uは10に基づいており、vは11に基づいている必要があります。したがって、sxはその中間にあります)。私は正しいですか?しかし、私のコードでは、uとvは常に異なります。

何か案は?どうもありがとうございます。

4

1 に答える 1

1

1 つの問題は、使用方法にある可能性がありますMath.Random

p[i] = p[j = Math.floor(Math.random() % B)];

JavaScript ではMath.Random、0 から 1 の間の浮動小数点値を
random返します。C では、0 から RAND_MAX の間の整数値を返します。

p[i] = p[j = random() % B];
于 2012-05-09T06:58:18.250 に答える