Math.random 平均随机数

这篇博客本来想写写如何均匀的在一个圆内生成n个点,写完例子发现。自己的方法和Math.random生成的基本上一样。。

然后就不写了。。打印了一下函数调用的时间。。额还是自己的方法用的时间少点。那就记下了。。也算是一个思路

如何在一个圆内生成N个随机的点

demo点击这里

  1. 随机一个角度,再随机一个半径,打点。代码如下

    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--;
    	}
    }

  2. 把这个圆的半径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--;
    	}
    }

本文标题:Math.random 平均随机数
本文链接:https://56way.com/p/66.html
作者授权:除特别说明外,本文由 无路 原创编译并授权 小无路 刊载发布。
版权声明:本文不使用任何协议授权,您可以任何形式自由转载或使用。

发表评论

必填

选填

选填

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。