2012-05-09 11 views
3

古典的な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

答えて

1

一つの問題は、あなたがMath.Randomを使用する方法であるかもしれません。

p[i] = p[j = random() % B]; 
+1

こんにちは、ありがとうございます!それは私の問題を解決するようだ!私はJsFiddleの例を変更し、結果は素晴らしいようです:http://jsfiddle.net/fDTbv/ – Pipo

関連する問題