Определение вложенности замкнутых полилиний

Автор Тема: Определение вложенности замкнутых полилиний  (Прочитано 4548 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Алексей ТерноАвтор темы

  • ADN Club
  • ****
  • Сообщений: 381
  • Карма: 33
    • C3D Extensions
  • Skype: alexeyterno
Есть две замкнутые полилинии. Необходимо определить, расположена ли вторая полилиния внутри первой.
У меня есть два варианта решения этой задачи:

Вариант первый - через вершины второй полилинии: если хотя бы одна вершина второй полилинии расположена вне первой полилинии, то вся полилиния находится снаружи (необходимо отловить только положение всей полилинии внутри).
Извините, вам запрещён просмотр содержимого спойлеров.

Вариант второй - через области: выполняю операцию объединения двух областей и сравниваю площади первой полилинии до и после объединения, если она увеличилась, то первая полилиния расположена снаружи.
Извините, вам запрещён просмотр содержимого спойлеров.

Оба эти варианты работают и дают корректный результат. Проблема в том, что в моем случае имеется 120 полилиний, для который необходимо определить вложенность и некоторые полилинии имею 4000 вершин. Как следствие, эта операция выполняется 20-30 минут.

Вопрос: есть ли какие-либо более быстрые варианты решения этой задачи?

Оффлайн trir

  • ADN Club
  • ****
  • Сообщений: 475
  • Карма: 63
1. Индексы - RTree
2. Алгоритмы - есть хороший в "Компьютерная геометрия и алгоритмы машинной графики"  Никулин Е.А.

Оффлайн Дима_

  • ADN Club
  • ****
  • Сообщений: 473
  • Карма: 66
Проблема в том, что в моем случае имеется 120 полилиний, для который необходимо определить вложенность и некоторые полилинии имею 4000 вершин.
Чтобы отсеять основные вычисления - берешь габариты всех и сотрируешь в порядке убывания...