Мне нужно рассчитать перекрытие (сумма или да/нет), что два прямоугольника делают на специальной сетке x/y. Сетка 500x500, но стороны и углы соединяются (непрерывны). Таким образом, следующая точка после 499 снова становится 0.Рассчитать перекрытие между двумя прямоугольниками по сетке x/y?
В предыдущем вопросе я попросил способ рассчитать расстояние между двумя точками в этой сетке. Это оказалось евклидово расстояние:
sqrt(min(|x1 - x2|, gridwidth - |x1 - x2|)^2 + min(|y1 - y2|, gridheight - |y1-y2|)^2)
Что такое хороший математический способ вычисления, если два прямоугольника (определяется точкой (х, у), ширина и высота) имеет перекрытие в этой сетке?
Прямоугольник-1 ([x=0,y=0], w=20, h=20
) и Прямоугольник-2 ([x=495,y=0], w=10, h=10
) должны иметь перекрытия. Перекрытие прямоугольник (на самом деле не нужны, но) должен быть ([x=0,y=0], w=5, h=10
)
Я могу рассказать вам, как это сделать в 3D-пространстве ... он будет работать и в 2D, но я не знаю, приемлемо ли это для вас. В основном идея состоит в том, чтобы взглянуть на 2 плоскости, в которых расположены прямоугольники. Найдите пересечение этих плоскостей и посмотрите, пересекает ли линия, которая пересекает плоскости, с обоими прямоугольниками ... Хотите услышать математику? – Cipi
Меня очень интересует математика. Я понимаю, что вы говорите, и я могу вычесть математику, но я не могу ее выпустить ... Будет ли менее 2d-подход на мощности процессора? – Ropstah
CPU мощность ?! Вы можете рассчитать это на CPU Casio Watch. xD Это действительно простая математика ... Позвольте мне проверить это, что я имею в виду. Вы создаете его на языке C-like OO? – Cipi