本文整理汇总了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);
}