Re[4]: Персечение фигур
Здравствуйте, night_wolf,
>> В принципе приемлимое решение я уже нашел:
>> 1. вычислить дХ и дУ между центров прямоугольников
>> 2. вычислить суммы дХ и дУ от центра обоих прямоугольников
>> 3. Сравнить сумму дХ(дУ) и дХ(дУ) между центрами.
n> подскажите, пожалуйста: основную идею уловил, однако тем не менее можно взглянуть
n> на код?
Есть код на ЛИСПе, но думаю тут будет уместнее формализованный(если я
правильно понял смысл) алгоритм, не привязанный к языку.
;Точки центра - можно считать по другому, просто высчитывая
координаты/
Входные данные: Область1 и область2
область = массив точек (Точка1,точка2)
Расчет:
ц1 - Центр Области1 - (точка - массив 2-х элементов или запись)
Хц1= (Х1Области1 + Х2Области1) / 2
Хц2= (Х1Области2 + Х2Области2) / 2
Уц1= (У1Области1 + У2Области1) / 2
Уц2= (У1Области2 + У2Области2) / 2
;dX и dY областей
дХ1 = (Хц1 + Х1Области1) / 2
дХ2 = (Хц2 + Х1Области2) / 2
дУ1 = (Уц1 + У1Области1) / 2
дУ2 = (Уц2 + У1Области2) / 2
SumX = дХ1 + дХ2
SumY = дУ1 + дУ2
;dX и dY между центрами
дХ = (Хц1 + Хц2) / 2
дУ = (Уц1 + Уц2) / 2
Пересекаются (<= дХ SumX) И (<= дУ SumY)
З.Ы. Возможно сам-бы дошел, но мне подсказали...