3

質問があります...

サイズAxAの正方形を想像してみてください。次に、下の画像のように、この正方形内にランダムに分布する直径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)

そして2番目のこと-すべてがシミュレートされており、ある座標(x、y)が黄色の領域の内側または外側にあるかどうかを確認したいとします...どうすればよいですか?私は自分の(x、y)が各円の領域内にあるかどうかを確認することでそれを行っていました(ただし、円の代わりに丸い長方形を使用すると難しくなります)が、もっと良い方法があるはずですそれ。手伝ってくれてありがとう : )

4

1 に答える 1

1

これがトリックを行うべきアプローチです:

  1. 大きな空行列から始めます(生成されたすべての形状が完全に行列の内側にあることを保証するのに十分な大きさです)。このようにするとしますcolor = zeros(100)
  2. まだカウディング比に達していませんが、1つの円の中点と直径ですが、これは管理できると思います。
  3. 円内のすべてのポイントの色を変更します。たとえば、1に設定します。
  4. 混雑率を計算します(c = mean(mean(color))

マトリックスの一部のみを使用する場合(形状が画像から部分的に外れるようにする場合)、これは、たとえばmean(mean(color(11:end-11))、エッジ付近の10ピクセルを無視して、手順4で使用することで実現できます。

ここで、ポイント(x、y)が黄色かどうかを知りたい場合は、の値を確認してくださいcolor(x,y)。または、エッジチェックを無視したい場合color(x+10,y+10)

于 2013-02-18T10:54:33.380 に答える