我使用绘制圆的处理创建了一个循环,整体形状应该是一个圆。然而,它们主要绘制在靠近 X 和 Y 轴的位置。我已经随机化了它位置演算的角度,我看不出问题出在哪里。
代码如下:
for (int omega = 0; omega<1080; omega++){ //loop for circle creation
radius = (int)random(80); //random radius for each circle
int color1= (int)random(100); //little variation of color for each circle
int color2= (int)random(100);
int locationY = (int)(sin(radians(omega))*random(width/2+1)); //location calcualtion
int locationX = (int)(cos(radians(omega))*random(width/2+1));
fill(0,color1+200,color2+200,50);
ellipse(locationX,locationY,radius,radius); //draw circles
}
最佳答案
好点@Durandal (+1)
但是我又想到了一个随机的圆圈。
当您使用此类代码生成随机距离时:
double distance = random( width/2 );
你从均匀分布中随机抽取。我的意思是从 0
到 width/2
的所有值都具有相同的概率。但是半径为 3*r
的圆的面积是半径为 r
的圆的 9
倍。因此,离中心的距离越小,我们能看到的密度就越大。
通过这种方式生成的云密度不均匀,如您在第一张图片中所见。
但是,如果您更改概率密度函数,使值越大的概率越小,您就可以获得均匀生成的云。
这么简单的修改:
double distance = Math.sqrt( random( width/2 * width/2 ) );
生成更均匀分布的圆圈,如您在第二张图片中所见。
我希望这对您有所帮助..
关于java - 主要在 X 和 Y 轴上绘制的圆圈,为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26995104/