ADN Club > VBA

Нужен алгоритм перенумеровки вершин замкнутой полилинии

(1/1)

Anatoly:
Речь не идет о переделке самой полилинии.
Надо переставить индексы вершин в массиве, указав, что индекс Х заменится на индекс У.
Полилиния может быть по часовой стрелке или против.
Пример 1
5 вершин, по часовой стрелке
4-я становится 1-ой, 5-я 2-ой....3-я 5-ой
Пример 2
5 вершин, по часовой стрелке
5-я становится 1-ой, 4-я 2-ой....1-я 5-ой
Пример 3
5 вершин, против часовой стрелки
5-я становится 1-ой, 4-я 2-ой....1-я 5-ой

Александр Ривилис:
1. Прочитать все координаты полилинии через свойство Polyline.Coordinates
2. Упорядочить их так как тебе нужно
3. Записать все координаты полилинии через свойство Polyline.Coordinates

Anatoly:
Я наверное, не точно объяснил, что надо.
У меня есть массив с координатами вершин.
Мне надо переписать индексы массива.
Например, было
|1|X1|Y1|
.....
|5|X5|Y5|

Стало
|1|X4|Y4|
.....
|3|X5|Y5|
|5|X2|Y2|
т.е. надо, чтобы 4-я стала 1-ой,  тогда 5-я станет2-ой, 3-я 5-ой и т.д.

Владимир Шу:
Сделай двойную коллекцию вершин и начни с нужной по счету.

Anatoly:
Сделал так.
Дано:
UB - верхняя граница массива (количество вершин)
Vold - прежний индекс вершины
Vnew- новый индекс вершины
delta =Vold-Vnew

Цикл по вершинам
Vnew текущ.=Vold текущ. - delta
Если Vnew текущ. <= 0 то Vnew текущ. = UB - ABS(Vnew текущ.)

Навигация

[0] Главная страница сообщений

Перейти к полной версии