Поиск перекрывающейся области двух прямоугольников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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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