【发布时间】:2018-09-22 03:47:30
【问题描述】:
这就是我想要达到的目标
到目前为止,我对我拥有的代码感到满意,它借鉴了 Wolfram 和其他一些数学资源。
但我不知道如何整合一些偏差计算,或者只是一种分配随机但有组织的方法!
谁能指出我正确的方向?
这是我的代码,它将使用 P5 在浏览器中运行
var numDots = 3000;
var dotSize = 1.5;
var dotCoordinates = [];
var randomHue;
var xoff = 0;
var fps = 30;
function setup() {
createCanvas(600,600);
ellipseMode(CENTER);
colorMode(HSB,360,100,100);
randomHue = random(360);
frameRate(fps);
for(i=0; i < numDots; i++) {
var rnd = map(noise(xoff),0,1,0,width);
var R = 300; //circle radius
var a = random(rnd) * TWO_PI; //random angle
// var r = R * noise(rnd); // donuts
// var r = R * noise(random()); // dust rings
// var r = R * random(noise(rnd)); // starburst
var r = R*0.6 * sqrt(random()); // solid
var x = width/2 + r * cos(a);
var y = height/2 + r * sin(a);
result = createVector(x,y);
dotCoordinates.push(result);
xoff += 0.001;
}
}
function draw() {
background(randomHue,100,10);
noStroke();
for(i=0; i < dotCoordinates.length; i++) {
fill(randomHue,50,80);
ellipse(dotCoordinates[i]['x'], dotCoordinates[i]['y'], dotSize, dotSize);
}
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/0.7.2/p5.min.js"></script>
【问题讨论】:
-
如果您了解如何正确地从圆或球体中采样点,那么偏向采样函数以其他方式对其进行采样应该很容易
-
感谢您的回复。不确定我是否理解你 - 我目前不是从一个圆圈中取样,我是在一个圆圈中任意分布。我可以看到一种方法,也许我迭代了 dotCoordinates 数组中的每个点,并且任何靠近圆边缘的点都被推到了边缘。你指的是这个吗?
-
不,我的意思是随机抽样。在所需几何形状中生成随机点的过程,该随机点具有关于该几何形状的所需概率分布。常用于蒙特卡洛模拟。
-
@tehhowch 我不知道蒙特卡洛模拟。感谢分享。
标签: plot processing geometry p5.js