Поиск перекрывающейся области двух прямоугольников ⇐ C#

Место общения программистов C#
Anonymous
Поиск перекрывающейся области двух прямоугольников

Сообщение Anonymous »

Как я могу проверить, перекрываются ли два прямоугольника и если они это делают, вычислить область перекрытия? Меня интересует случай, где: < /p>

Все строки в обеих прямоугольниках либо являются либо вертикальными, либо горизонтальными < /li>
Общий случай для любых двух прямоугольников < /li>
< /ol>
Но единственный ответ мне действительно нужен случай 1.

Код: Выделить всё

double areaOfOverlap( Rect A, Rect B)
{
if ( A.Intersects(B) )
{
// calculate area
// return area
}
return 0;
}
для a.Interscts () Я думал об использовании теста разделяющей оси, но если у прямоугольников есть только горизонтальные и вертикальные линии, есть еще более простой (более быстрый) способ? И для расчета области, где они пересекаются, есть ли быстрый способ, если прямоугольники являются только горизонтальными и вертикальными линиями? Это кажется сложным и не отвечает напрямую на вопрос.

Подробнее здесь: https://stackoverflow.com/questions/155 ... rectangles

Вернуться в «C#»