2013-03-22 80 views
2

我有8個點在二維空間中創建八邊形的輪廓。我需要找到這些點包含的區域,但我該如何使用matlab做到這一點?Matlab:查找包含點(x,y)的區域

的八個點(X,Y)包含在8×2矩陣B.

B = [ 260 455; 
    1187 467; 
    1325 605; 
    1342 1533; 
    1207 1675 
    251 1690; 
    107 1547; 
    116 593]; 

所述多邊形是通過繪製從作爲第1行的點的直線與行2創建的,則行2至第3行等等...

+0

首先使用roipoly創建一個蒙版,然後使用bwarea找到區域 – 2013-03-22 20:59:50

+1

@Parag - 如果數字很大,那麼效率可能相當低。在某些情況下,這也會不準確,特別是當使用多區域的更好的答案是如此微不足道的時候。 – 2013-03-22 21:39:00

回答

6

您可以使用polyarea

ar = polyarea(B(:, 1), B(:, 2)); 
+0

這個問題有很多可能的解決方案,但我認爲這是最有效的,因爲它是內置的函數,可以完全滿足OP的要求。 – Floris 2013-03-22 23:04:39

0

我會去與梯形

Area = trapz(B(:,1),B(:,2)); 
0

要計算面積和體積,可以使用convhull