我正在遵循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/
答案 0 :(得分:0)
在细分功能中:
let neb = new Rectangle(b.x+b.w/2, this.y, b.w/2, b.h/2);
this
应该是b