@andre_max

Как закрасить произвольную фигуру линиями?

Каким образом закрасить фигуру произвольной области непрерывной линией? Оптимальным считается алгоритм, в котором длина линии минимальна.
На вход программа получает массив координат границы (x,y) произвольной области и ширину линии. ДопустИм минимальный выход за границы области.

Усложненный вариант: линия, приближаясь к границе области, должна разворачиваться по дуге окружности.
  • Вопрос задан
  • 810 просмотров
Пригласить эксперта
Ответы на вопрос 1
@Northsoft
Препод, программист, линуксоид
Алгоритм серьёзный, боюсь, бесплатно вам его никто не реализует. Я бы поступил как:
  1. Провёл бы контур, аналогичный границе, но внутри неё на таком расстоянии, которое достаточно мало́, чтобы проведённый контур сливался с границей;
  2. разбил бы только что проведённый контур на отдельные кольца (при наличии самопересечений);
  3. для каждого кольца провёл бы внутри ещё один контур;
  4. соединил бы проведённые внутренние контуры со внешними;
  5. для каждого из оставшихся колец повторял бы алгоритм.

И ещё, алгоритм кратчайшего пути через все точки — это задача коммивояжёра, известная своей трудоёмкостью. Боюсь, оптимизировать тут что-либо будет достаточно тяжело, это больше задача для НИИ.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы