Math.random 平均随机数
这篇博客本来想写写如何均匀的在一个圆内生成n个点,写完例子发现。自己的方法和Math.random生成的基本上一样。。
然后就不写了。。打印了一下函数调用的时间。。额还是自己的方法用的时间少点。那就记下了。。也算是一个思路
如何在一个圆内生成N个随机的点
随机一个角度,再随机一个半径,打点。代码如下
function randomPixByMath(x, y, value, ctx) { var v = value; while (value) { var r = (Math.random() * R).toFixed(0) - 0; //随机一个半径 var _ = (Math.random() * 360).toFixed(0) - 0; var x1 = x + r * Math.cos(_ / 180 * Math.PI); var y1 = y + r * Math.sin(_ / 180 * Math.PI); ctx.fillStyle = COLOR; ctx.fillRect(x1, y1, 1, 1); value--; } }
把这个圆的半径R/N 即N等分R,然后在每一个等分上随机一个角度,打点,代码如下
function randomPixByValue(x, y, value, ctx) { var v = value; while (value) { var r = R / v * value; var _ = (Math.random() * 360).toFixed(0) - 0; var x1 = x + r * Math.cos(_ / 180 * Math.PI); var y1 = y + r * Math.sin(_ / 180 * Math.PI); ctx.fillStyle = COLOR; ctx.fillRect(x1, y1, 1, 1); value--; } }
发表评论