有人可以解釋爲什麼負面大小的Rectangle
與他們的方式相交?負尺寸矩形如何相交?
var r = new Rectangle(0, 0, 3, 3);
var r0 = new Rectangle(0, 0, -1, -1);
var r1 = new Rectangle(1, 1, -1, -1);
var r2 = new Rectangle(2, 2, -1, -1);
var r3 = new Rectangle(3, 3, -1, -1);
System.Console.WriteLine(r.IntersectsWith(r0)); // False
System.Console.WriteLine(r.IntersectsWith(r1)); // False
System.Console.WriteLine(r.IntersectsWith(r2)); // True
System.Console.WriteLine(r.IntersectsWith(r3)); // False
我想r1
和r2
應始終r
相交,即使他們不這樣做。如果你考慮它們的負尺寸,r3
應該相交。如果不考慮負尺寸,r0
應該相交。
爲什麼這樣工作,以及在使用Rectangle
結構時應該注意哪些其他注意事項?
我不知道...我猜IntersectsWith的行爲對於負尺寸的矩形是未定義的,雖然它沒有在[API]中記錄(http://msdn.microsoft.com/zh-cn/ library/y10fyck0.aspx)...我建議你將此問題作爲「社區內容」發佈到MSDN?這是一個非常好的問題。有人懷疑,對於所有那些空間操作,沒有定義負尺寸Rectangle的行爲......它們是否按照您預期的那樣渲染? – corlettk 2011-04-30 08:30:00
@corlettk:「社區內容」是**不適用於發佈問題。這就是MSDN論壇的目的。 – 2011-04-30 08:59:28
Thanx科迪。我從來沒有使用過MSDN的論壇;-) – corlettk 2011-04-30 09:49:48