Понимаю-понимаю...
процесс сложен, для начала я опишу к чему пришли мои долгие опыты. Сами объекты смотри на сайте. Их много.
http://alexander-ani.narod.ru/biblio_ani/biblio_ani.html (прошу прощения, сегодня русское описание на сайте глючит, но скачать кликнув по картинкам можно) Возьми фигурное окошко, например, или "по пути Ани". Они отлажены были хорошо, и внутри упорядочен скрипт.
Чтобы точки себя вели правильно, мне пришлось пользоваться следующим алгоритмом:
а. мастер скрипт проходит обработку за два раза. в своих скриптах я отсеиваю двойные действия созданием переменной dummy, которая либо 1 либо 0. первый или второй проход.
б. мне пришлось создать массив-дубляж точек. Каждый раз после передвижки все точки запоминаются-дублируются. таким образом отсеиваются передвижения "зависимых" точек от "пользовательского" передвижения.
В первом проходе скрипта проверяются все изменения точек относительно дубляжа. Во втором все записывается в массив-дубляж.
в. Координаты точек в отдельном массиве, нумерация по кругу в отдельном. Т.е изначально 1-2-3-4. Затем вставляем внутрь и получим 1-2-5-3-4. Затем удалим что-нибудь. Получим 1-5-3-4. Порядок точек прописывается в отдельной переменной.
Это позволяет промежуточной точке с тем же номером превратиться в угловую, перепрописавшись в общем списке-массиве.
Г. Если двигаем угловую точку, то обращаемся в под функцию (gosub ...), передавая ей
предыдущий и последующий промежуточные номера, а также
соседние угловые точки Далее функция изменяет координаты этих точек в соответствии с заложенным алгоритмом (находит середину).
Вот тут-то и ответ на заданный вопрос: при крайних угловых точках (первой или последней) в качестве соседней надо указывать другую с конца (последнюю или первую), а возможно и другую промежуточную. Все зависит от твоего списка-массива номеров точек.