2011-06-13 59 views
1

如何獲得兩個長方形的非重疊區域的「多邊形」或「區域」。獲取兩個長方形的非重疊區域

類似於(A-B),其中「A」和「B」是矩形。我們可以很容易地使用Rectangle.Intersect方法得到相交的矩形,但我想要一個不常見的矩形部分。

感謝

回答

2
Rectangle a, b; 

var region = new Region(a); 
region.Exclude(b); 

Region.Exclude(Rectangle rect) method

+0

是不是 「A \ B」,而不是 「(A∪B)\(A∩B)」? – dtb 2011-06-13 16:08:57

+2

或者您可以使用[Region.Xor](http://msdn.microsoft.com/zh-cn/library/15sdft5d.aspx)如果您想要_both_矩形的非公用部分。 – Vlad 2011-06-13 16:09:52

+0

謝謝,那正是我一直在尋找的 – Gaurav 2011-06-13 17:24:40

2

你可以使用Intersect兩個矩形的交集。這意味着你可以得到交點的區域。因此,將交叉點的面積乘以2(乘以2,因爲它在兩個矩形上佔據相同的面積),並從兩個矩形的總面積之和中減去它。