Как подобрать кривую преследования заданной формы?

Есть такой способ рисования кривых: траектория преследования. Виртуальный «карандаш» стремится к какой-то контрольной точке (КТ). Та, в свою очередь – к другой. Другая – к третьей. Так в цепи может быть несколько звеньев. И наконец, первая стремится к указанной Главной точке (ГТ). ГТ перемещается скачками либо плавно. КТ и «карандаш» плавно стремятся к своей «родительской» точке, замедляясь по мере приближения.

Примеры:
  • ручной – поводите мышкой над полем. Там мышь, два преследователя и карандаш. Цепочка из 3 звеньев;
  • автономный – ГТ перескакивает в новое случайное место, как только «карандаш» приблжается ближе, чем пороговое значение.


Вопрос в том, как решить обратную задачу. Имея произвольную линию, получить набор положений Главных Точек и временных отметок, когда в них оказываться, чтобы при заданных параметрах цепочки преследования отрисовалась бы исходная кривая с точностью X. Количества ГТ надо минимизировать. Понятно, что можно было бы расставить по точке на каждый миллиметр, это почти то же, что составить плавную кривую из множества коротких прямых сегментов.

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

Например, создать процесс генерации "one line drawing" – рисунков одной линией, не отрывая руки:
5ba34970bce29092900692.jpeg
  • Вопрос задан
  • 129 просмотров
Пригласить эксперта
Ответы на вопрос 1
LaRN
@LaRN
Senior Developer
Если я правильно понял, возможно вам вот это подойдет:
https://habr.com/post/314218/

Суть сводиться к приближению произвольной линии сплайном определенного порядка.
И тут вся сложность сводиться к выбору порядка сплайна и ключевых точек.
Указанная статья как раз про это.
Ответ написан
Ваш ответ на вопрос

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

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