Math.random()函数实际上是分形的吗?

时间:2019-04-17 13:43:43

标签: javascript canvas random

我正在遵循The Coding Train(YT)的四叉树教程,并且可以使用四叉树进行绘图!我的问题是,使用Math.random()* canvas.width和Math.random()* canvas.height在画布上创建随机点的点并没有给我随机的点模式,而是分形的(例如Sierpinski三角形)。

我已经查看了这个混乱的游戏(感谢Numberphile),并且足够了解Math.random()无法正常工作。这是我生成代码的代码。

for(let i=0; i<100000; i++){
    var rx = Math.random()*canvas.width;
    var ry = Math.random()*canvas.height;
    let p = new Point(rx, ry, 2.5, i);
    qtree.insert(p);
}

如果有人知道有用的解释,我是否错误地使用Math.random()?有没有更好的方法可以在正方形内获得随机点?

编辑: 这是jsFiddle: https://jsfiddle.net/muteman30/5b8mpfsc/5/

1 个答案:

答案 0 :(得分:0)

在细分功能中:

    let neb = new Rectangle(b.x+b.w/2, this.y, b.w/2, b.h/2);

this应该是b