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