我尝试将经典的 Perlin Noise (src: http://mrl.nyu.edu/~perlin/doc/oscar.html#noise ) 移植到 JavaScript - 用于科学目的。我不知道为什么,但我的代码会生成周期性模式而不是随机模式。
您可以在此处找到我的完整代码以及绘制到画布上的示例(精简到一维):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-seed 是 10.1、10.2、10.3 等。我认为 u 和 v 应该是相同的数字(u 应该基于 10,v 应该基于 11 - 所以 sx 介于两者之间)。我对吗?但在我的代码中,u 和 v 总是不同的。
有任何想法吗?非常感谢你。