古典的なPerlin Noise(src:http://mrl.nyu.edu/~perlin/doc/oscar.html#noise)をJavaScriptに移植しようとしています。なぜか分かりませんが、私のコードはランダムなパターンの代わりに周期的なパターンを生成します。古典的なPerlinノイズをJavaScriptに移植する:周期的なパターンを得る。どうして? (JsFiddleの例)
あなたは(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は常に異なっています。
アイデア?どうもありがとうございました。 JavaScriptで
p[i] = p[j = Math.floor(Math.random() % B)];
C 0と1
random
間の浮動小数点値は0とRAND_MAXの間の整数値を返しMath.Random
:
こんにちは、ありがとうございます!それは私の問題を解決するようだ!私はJsFiddleの例を変更し、結果は素晴らしいようです:http://jsfiddle.net/fDTbv/ – Pipo