【发布时间】:2012-11-15 09:55:06
【问题描述】:
我一直在努力学习如何产生噪音,发现我了解其中的大部分内容,但我在编写脚本时遇到了一些问题。
我使用this page 作为指导来编写this script in JavaScript,最终目的是在画布上制造一些噪音。
它确实在创造一些东西,但它一直藏在左边。此外,刷新页面似乎会一遍又一遍地创建相同的模式。
- 我做错了什么,图像的“嘈杂”部分在左侧被弄脏了?我怎样才能让它看起来更像多云的柏林噪音?
- 我真的不明白为什么它每次都不会产生新的模式。为了在每次运行脚本时接收随机模式,我需要进行哪些更改?
感谢您的帮助!
/* NOISE—Tie it all together
*/
function perlin2d(x,y){
var total = 0;
var p = persistence;
var n = octaves - 1;
for(var i = 0; i <= n; i++) {
var frequency = Math.pow(2, i);
var amplitude = Math.pow(p, i);
total = total + interpolatenoise(x * frequency, y * frequency) * amplitude;
}
return total;
}
【问题讨论】:
-
我看不出您在代码中的哪个位置更改了算法的输入,例如使用随机数。您的算法是确定性的——也就是说,给定相同的输入,它们总是会给出一致的结果。不过,不确定您的噪音中“糊状”的部分。
-
同意马特的观点。持久性在哪里定义,以及八度音阶。如果它总是相同,那么它将总是返回相同的结果。
标签: javascript html canvas noise