【发布时间】:2014-10-06 00:34:43
【问题描述】:
编辑:这是使用 Google Chrome 36
我在搞乱 html5 画布,生成随机分布在立方体内的点并将其投影到 2D 画布上。令人惊讶的是,结果看起来一点也不对称,我怀疑 Javascript 的 Math.random() 让我失望了。
谁能告诉我为什么会这样?有没有可能让它看起来真的很随机,而不让它变慢?
var ctx = canvas.getContext('2d');
for (var i = 0; i < 10000000; i++) {
var x = Math.random()*2-1, y = Math.random()*2-1, z = 2+Math.random()*2-1;
x = (.5 + .5*x/z) * canvas.width;
y = (.5 + .5*y/z) * canvas.height;
ctx.fillRect(Math.floor(x), Math.floor(y), 1, 1);
}
http://jsfiddle.net/y10tvj26/(加载需要一段时间)
【问题讨论】:
-
您是想在边缘聚集,还是希望它在整个正方形中真正随机?
-
你用的是什么浏览器?在 Opera 中完全没问题。
-
在 Firefox 中看起来也不错,那些白线不存在。
-
@Bergi 我在 Chrome 38.0.2121.3 中看到了描述的行为。
标签: javascript google-chrome canvas random prng