2013-02-18 94 views
3

我对您的提问下...MATLAB:区域重叠的圆圈

想象正方形尺寸的X A.现在,让我们用直径d模拟圈,随机这个广场内的分布,就像图片上的东西(在这种情况下,d是相同的,但它不是规则,它们也可以随机分布在d1到d2的某个范围内)。

simulation example

比方说该圆在矩阵描述:

circles(1, :) = [x, y, d]; 
circles(2, :) = [x, y, d]; 
...and so on 

其中xy是坐标,d是直径。现在的问题是,如何模拟这个圆,直到达到给定拥挤参数cc简单地定义为:c = yellow area/square area (in this case A^2)

而第二件事 - 让我们说一切都是模拟的,我想检查一下坐标(x,y)是在黄色区域内还是外部......如何做到这一点?我是这样做的,通过检查我的(x,y)是否在每个圆圈的区域内(但它变得更加困难,而不是我使用的圆形,即圆形矩形),但是必须有一些更好的方法它。 感谢您的帮助:)

回答

1

这里是一个办法,应该做的伎俩:

  1. 开始用大空矩阵(大到足以保证生成的每个形状是完全矩阵内)。假设我们像这样做color = zeros(100)
  2. ,而我们还没有达到cowding比:一个圆的中点和直径,我认为你可以管理这个
  3. 变化在圈中的所有点的颜色,例如将其设置为1。
  4. 计算拥挤比(像c = mean(mean(color))

注意,如果仅想使用部分矩阵的(使能的形状,以部分地掉出图片的)例如,这可以通过在使用mean(mean(color(11:end-11))来实现第4步,忽略边缘附近的10个像素。

现在,如果你想知道是否点(x,y)是黄色的,只需检查color(x,y)值。或者,如果你想忽略的边缘检查color(x+10,y+10)