На простом уровне вы могли бы достичь этого с небольшой помощью из закона Гука.Вы можете в основном просматривать вашу ломаную линию как строку, состоящую из множества вершин, соединенных пружинами:
ooooooooo
Каждая вершина связана с другой вершиной пружиной, которая сжимается при растяжениии отталкивать при сдавливании.
Таким образом, когда контрольная точка перемещается, соединенные пружины будут либо расширяться (растягиваться), либо сжиматься (уменьшаться).Это, в свою очередь, применяет силу к любой вершине, разделяющей эту пружину.Поэтому, если я потяну первую вершину вверх и влево, пружина приложит силу к вершине справа, притягивая ее ближе.Это продолжается до следующего (с некоторым рассеиванием энергии), пока все пружины не станут «удобными».
В этом суть, каждый раз, когда перемещается контрольная точка, вам нужно решить уравнение для всех вершин / пружин иОчки будут «змеиными» для вас.
Если вам нужны дополнительные примеры, воспользуйтесь Google «Физика каната» или «Физика ткани» (так как веревка - это 1D ткань).Игнорируйте гравитацию для ваших целей, хотя, очевидно.