3

我有一个问题要问你...

想象一个大小为 A x A 的正方形。现在让我们模拟直径为 d 的圆,随机分布在这个正方形内,如下图所示(在这种情况下,d 是相同的,但不是规则,它们也可能是随机分布的在某个范围内,例如 d1 到 d2)。

模拟示例

假设圆圈在矩阵中描述为:

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

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

第二件事-假设一切都是模拟的,我想检查某个坐标(x,y)是否在黄色区域之内或之外……怎么做?我是通过检查我的 (x,y) 是否在每个圆的区域内来做到这一点的(但是当我使用圆形而不是圆形时,它变得更加困难,即圆形矩形),但必须有一些更好的方法它。感谢帮助 : )

4

1 回答 1

1

这是一种可以解决问题的方法:

  1. 从一个大的空矩阵开始(大到足以保证生成的每个形状都完全在矩阵内)。假设我们这样做color = zeros(100)
  2. 虽然我们还没有达到 coding ratio:一个圆的中点和直径,但我想你可以做到这一点
  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)

于 2013-02-18T10:54:33.380 回答