本文整理匯總了C#中System.Drawing.Rectangle.IntersectionRect方法的典型用法代碼示例。如果您正苦於以下問題:C# Rectangle.IntersectionRect方法的具體用法?C# Rectangle.IntersectionRect怎麽用?C# Rectangle.IntersectionRect使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類System.Drawing.Rectangle
的用法示例。
在下文中一共展示了Rectangle.IntersectionRect方法的1個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的C#代碼示例。
示例1: UpdateEmptyFields
/// <summary>
/// Uaktualnij EmptyFields
/// </summary>
/// <param name="insertedRectangle">Wstawiany prostok�t</param>
private void UpdateEmptyFields(Rectangle insertedRectangle)
{
IEnumerator<Rectangle> enumerator = emptyFields.GetEnumerator();
//sprawdzamy czy sa jakies puste, ktore zostaly calkowicie pokryte przez ostatnio dodany prostokat
List<Rectangle> toDelete = new List<Rectangle>();
while (enumerator.MoveNext())
{
Rectangle empty = enumerator.Current;
if (empty != null)
if (insertedRectangle.Covers(empty))
//emptyFields.Remove(empty);
toDelete.Add(empty);
}
foreach (Rectangle r in toDelete)
emptyFields.Remove(r);
toDelete.Clear();
enumerator = emptyFields.GetEnumerator();
List<Rectangle> toAdd = new List<Rectangle>();
//sprawdzamy czy sa jakies czesciowo pokryte puste
while (enumerator.MoveNext())
{
Rectangle empty = enumerator.Current;
if (empty != null)
{
Rectangle intersection = insertedRectangle.IntersectionRect(empty);
if (intersection != null)
{
//emptyFields.Remove(empty);
toDelete.Add(empty);
List<Rectangle> subtr = empty.Subtract(insertedRectangle);
//emptyFields.AddRange(subtr);
// poprawione - Pawe�
//toAdd.AddRange(subtr);
addToList(toAdd, subtr);
}
}
}
foreach (Rectangle r in toDelete)
emptyFields.Remove(r);
toDelete.Clear();
foreach (Rectangle r in toAdd)
// poprawione - Pawe�
//emptyFields.AddRange(toAdd);
addToList(emptyFields, toAdd);
toAdd.Clear();
//sprawdzamy czy trzeba dodac jakies nowe EmptyFields
AddNewEmptyFields(insertedRectangle);
}