Re: Персечение фигур

Hello,
Два или больше? (знаю что глупый вопрос :)
Прямоугольники произвольно ориентированы или стороны
параллельны осям (axis-aligned)?
Сорри, но не совсем понял, что имеется ввиду? Поясните, пожалуйста :)
Все-таки не понимаю чем именно может не устраивать просто проверить
пересечения соответствующих диапазонов по x и y, если они axis-aligned.
Если нет - то проверяем в какой стороне от каждой плоскости лежат вершины прямоугольника...
Так по крайней мере советуют вот здесь:
http://www.narod.ru/guestbook/index.xhtml?owner=12139292&c=18
только там был вопрос про пересечение двух кубов в трехмерном пространстве.
Про пересечения прямоугольников написано в книге А.Борескова по компьютерной
графике(в самой первой - Динамика, реалистичные изображения)
Другая полезная вещь - Препарата, Шаймос "Вычислительная геометрия":
http://algolist.manual.ru/maths/geom/prsh/
а именно - главы про пересечения:
http://algolist.manual.ru/download.php?path=/maths/geom/prsh/prsh7.zip
Там есть про пересечения двумерных и трехмерных (произвольных, разумеется, не
только прямоугольников и кубов :), метод "трапеций", метод "серпов" и другие.
Можно было бы их в кратце здесь изложить, но лучше посмотрите книгу :)
Good luck!
Best regards,
Alexey
Номер выпуска : 5039
Возраст листа : 781 (дней)
Количество подписчиков : 543
Адрес в архиве : http://subscribe.ru/archive/comp.soft.prog.prog/msg/473043
Получить правила : mailto:comp.soft.prog.prog-rules@subscribe.ru
Формат "дайджест" : mailto:comp.soft.prog.prog-digest@subscribe.ru
Формат "каждое письмо" : mailto:comp.soft.prog.prog-normal@subscribe.ru
Формат "читать с веба" : mailto:comp.soft.prog.prog-webonly@subscribe.ru
Здравствуйте, night_wolf,
В принципе приемлимое решение я уже нашел:
1. вычислить дХ и дУ между центров прямоугольников
2. вычислить суммы дХ и дУ от центра обоих прямоугольников
3. Сравнить сумму дХ(дУ) и дХ(дУ) между центрами.
Именно 2 прямоугольника.
Параллельны осям.
Ну-у, основная задача минимизировать затраты, на реализацию. Как
известно гораздо быстрее выполняются операции вычисления, чем
сравнения. Поэтому цель снизить до минимума условные операторы.
Можно проверять вершины, т.е. брать каждую вершину 2-го прямоугольника
и проверять ее на нахождение в области первого прямоугольника. Это 4
условных выражений.
Можно сверять не вершины, а грани - это 2 условных выражения.
Предложенный вариант использует одно условие.
Про книжки и ссылки - обязательно посмотрю... Нужно вспомнить, так
хорошо забытое.