我已經將單位正方形定義爲matlab代碼中的一個區域,並且我創建了隨機大小的橢圓,均以單位正方形爲中心。如何減去單位正方形外部的橢圓面積?
但是,僅僅因爲它們以單位正方形爲中心並不意味着它們的所有區域都在單位正方形內。
我想只考慮單位平方內的區域,所以我計算了每個隨機生成的橢圓的總面積,但我不知道如何減去單位平方以外的面積。
這裏是我的代碼創建的省略號,並計算它們的面積部分:
a = rand(16,1);
totarea = zeros(1,16);
for i = 1:4:16
ellipse(a(i)/2,a(i+1)/2,a(i+2),a(i+3))
totarea(i) = pi*a(i)*a(i+1)/4;
end
b = find(totarea > 0);
totarea = totarea(b);
這裏是我所生成的內容中的照片:
大廣場是單位正方形。在那個廣場的內部是我感興趣的區域。正如你看到的那樣,生成的橢圓覆蓋了這個廣場。我想找到位於正方形內部的每個橢圓的區域。
我上面生成的代碼允許我計算每個橢圓的總面積,但是我需要減去在正方形外發生的橢圓的面積,我不確定如何編寫代碼去做。
不確定你的意思。你能提供一些你想要做的事情的圖形/插圖(或鏈接到一個)。 – Marcin
我更新了帖子以包含一個更詳細的解釋數字 – user132039
首先爲什麼你的函數'ellipse'需要四個輸入?通常一個橢圓由兩個變量定義......那麼你是如何定義「單位平方」的?你可以做些什麼來獲得這些橢圓的面積是:你可以說每個像素等於你希望使用的單位x cm/mm/inch。然後,您可以計算橢圓內和「單位平方」內的像素數。這不會導致確切的區域,但會導致實際的數據。查看[「Riemann彙總」](http://en.wikipedia.org/wiki/Riemann_integral)。 –