Проблема вычислительной геометрии:
Точка P0 выбирается случайным образом на ребре (например, EB) многоугольника (например, BCDE), чтобы найти возможные точки (т.е. P1,P2,P3,...) на других ребрах на основе данного расстояния (т.е., r). Следующая демонстрация показывает решение путем нахождения пересечений между окружностью с центром в точке P0 и краями многоугольника. Таким образом, проблема в основном может быть решена анализом пересечений Circle--Line-Segment.
Интересно, что существует ли более эффективный метод для этой очень простой проблемы с точки зрения стоимости вычислений? Процесс будет оценен несколькими million times, поэтому интерес будет интересен.
- окончательное решение выиграет от мощности Python;
- вычисление ядра будет Fortran, если это необходимо.

Обновление:
Спасибо за ваши комментарии. Пожалуйста, рассмотрите мои комментарии к комментариям, которые помогают уточнить этот вопрос. Не желая повторять их здесь, поощряя рассмотрение всех комментариев и ответов;).
Я только что реализовал метод Circle--Line-Segment Intersection на основе найденного алгоритма [здесь]. Фактически я адаптировал его для работы с линейными сегментами. Эталон алгоритма, реализованного на Python, выглядит следующим образом: 

Количество сегментов линии: 100,000, а система - обычный рабочий стол. Истекшее время: 15 seconds. Надеемся, что это полезно, чтобы дать некоторое представление о стоимости вычислений. Реализация ядра в Fortan может значительно повысить производительность.
Однако перевод является последним.