Здравствуйте, WinterMute, Вы писали:
WM>Ладно блин, третья попытка.
WM>Вычислим центры первого и второго прямоугольника (это быстро). Для каждого прямоугольника вычислим радиусы вписанной и описанной окружности (тоже быстро). Теперь, если расстояние между центрами прямоугольников меньше суммы радиусов вписанных окружностей -- они точно пересекаются, если расстояние больше суммы описанных окружностей -- они точно не пересекаются, в оставшемся случае нужно смотреть:
WM>Метод "в лоб": перебрать все сочетания граней прямоугольников и попытаться найти их пересечение. Если есть хоть одно пересечение -- прямоугольники пересекаются.
WM>Нужно получше подумать, но наверное сработает и такой способ (и он будет быстрее): берёшь две грани от прямоугольников которые лежат ближе всего друг к другу (видимо, это те, которые пересекаются с отрезком соединяющем центры двух прямоугольников). Смотришь, пересекаются ли они друг с другом, если да -- прямоугольники пересекаются, если нет, то нет.
Читаю и не знаю — смеяться или плакать.
Уважаемый WinterMute кажется использует шаманские методы для написания алгоритмов.
Алгоримт строиться на нахождении того находятся ли точки вершин внутри одного из прямойгольников и на определении пересечений сторон, и то это в случае если прямоугольники произвольно ориентированы относительно осей координат. Если же их стороны параллельны осям, то задача решается тривиальна и функцию для ее решения уже привели выше.
НО! Нахождение цетров и тем более РАСТОЯНИЙ. Это явно не правильный и ни с точки зрения геометрии ни с точки зрения скорости алгоритма метод.
И еще интересно знать как в прямоугольник можно вписать окружность(это можно сделать только для треугольников и правильных многоугольников). Если же имеется в виду окружность касающаяся только двух сторон, то это не называется вписаной окружностью.В геометрии для того и существуют четкие определения, чтобы ясно определять о чем идет речь. Здесь не понятно.
P.S. Уважаемый Модератор, эту ветку можно удалить. Т.к. тема раскрыта в предыдущей ветке. А здесь скорее ведутся псевдонаучные изыскания.