Я пытаюсь работать над алгоритмом, который превратит одну "форму" в другую "форму". Обе формы произвольны и могут даже иметь более мелкие, несвязанные формы.
Основная идея, которую я имею до сих пор, заключается в следующем: найдите края формы, поместите точки по всем этим краям, затем сделайте то же самое с целевым изображением, а затем переместите точки на свои цели.
Вот иллюстрация:
Я просто не знаю, с чего начать. Образ выше - упрощение, фактический прецедент имеет более сложные формы/контуры. Моя основная проблема: как обрабатывать непересекающиеся фигуры? Лучшее, что я могу придумать, - это выяснить ближайшую точку между двумя частями и объединить их вместе как часть пути. Но как мне это реализовать?
У меня пока нет кода, я все еще на стадии планирования. Я предполагаю, что я прошу, может ли кто-нибудь связать меня с любыми ресурсами, которые могут помочь, или дать какие-либо указатели. Поиск Google дал некоторые интересные алгоритмы морфинга, но все они имеют дело с полными изображениями и включают разбиение изображения на части, чтобы изменить их, что не то, что я ищу.
Обратите внимание, что это будет использоваться в JavaScript, но может быть предварительно вычислено в PHP, если это проще.