2013-02-18 204 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)