Математика для подсчета разницы концентрических прямоугольников
У меня есть 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.