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

У меня есть 2 прямоугольника, один из которых в основном увеличен, например, enter image description here

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

enter image description here

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

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

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

Ответы [ 2 ]

2 голосов
/ 10 августа 2011
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 это внешний прямоугольник.

1 голос
/ 10 августа 2011

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

...