Тема: Оптимизация нахождения пересечений.
Подскажите как можно оптимизировать макрос находящий пересечения отрезка с множеством полилиний.
Сложность заключается в том, что в полилиниях встречается очень большое количество точек (десятки тысяч), и самих полилиний тоже много (сотни).
Пересечения нахожу путем вычисления для отрезка и каждой пары точек полилинии уравнений прямой, проверки их параллельности, и расположения точек относительно друг друга.
Т.к. точек и полилиний крайне много, и проверять приходится все точки (т.к. полилиния может быть любой формы и пересечений может быть больше одного), процесс подсчета пересечений занимает иногда до получаса.
В данный момент оптимизировал вычисления путем дополнительного условия - нахождения точек полилинии в прямоугольнике (x1y1 - x1y2 - x2y2 - x2y1), который "образует" отрезок - если точки находятся не в нем - вычисления не производятся - время вычисления заметно уменьшилось.
Возможно Вы подскажите как можно еще оптимизировать вычисления.
PS. Есть ли возможность использовать в VBA многопоточность?