Математика для подсчета разницы концентрических прямоугольников

У меня есть 2 прямоугольника, один из которых в основном другой масштабируется, как и так

Я хотел бы видеть, попадает ли набор координат xy в разность XOR, т.е.

Какая математика лучше всего для этого?

Разница (XOR) между двумя прямоугольниками, как прямоугольники? делает то, что я хочу, но не совсем, и это кажется несколько... неэлегичным.

С другой стороны, я мог бы работать с чем-то, что возвращает "true", если координаты x/y находятся в пределах 10% от края внешнего прямоугольника

2 ответа

Решение
bool isInIntersection(pt, rect1, rect2)
{
    return isInRect(pt, rect1) && !isInRect(pt, rect2);
}

bool isInRect(pt, rect)
{
    return (pt.x >= rect.x1) && (pt.x < rect.x2)
        && (pt.y >= rect.y1) && (pt.y < rect.y2);
}

где я предполагаю rect1 это внешний прямоугольник.

Вот пример в javascript для нахождения точки в прямоугольнике. Тестирование точки в прямоугольнике Тогда просто проверять, находится ли он в Rectangle1, и если это так, если его нет в Rectangle2.

Другие вопросы по тегам