Сообщество программистов Autodesk в СНГ

ADN Club => AutoCAD .NET API => Тема начата: Алексей (IdeaSoft) от 07-07-2018, 19:44:56

Название: Удаление нескольких вершин полилинии
Отправлено: Алексей (IdeaSoft) от 07-07-2018, 19:44:56
Подскажите, я могу удалять в цикле вершины 2d-полилиниии
Ну вообще как корректно удалить вершины?

К примеру у меня есть номера удаляемых вершин полилинии.
Код - C# [Выбрать]
  1. int[] Nums = {3,4,7,8};

Наверное в цикле так не смогу сделать.
Будет индекс вне диапазона
или вообще удалятся не те номера какие нужно?
Удалю 3 вершину на ее место станет 4-я все сместится и получится бред.

Или ни чего не сместится пока не вызовешь метод
Код - C# [Выбрать]
  1. Transaction.Commit()?

Код - C# [Выбрать]
  1. polyline PL; ...
  2. foreach (int n in Nums) {
  3.     PL.RemoveVertexAt(n);
  4. }
Название: Re: Удаление нескольких вершин полилинии
Отправлено: Вильдар от 07-07-2018, 20:19:59
Может отсортировать по убыванию индексы и удалять.
Название: Re: Удаление нескольких вершин полилинии
Отправлено: Алексей (IdeaSoft) от 07-07-2018, 20:26:30
А ну да точно нужно пробежаться в цикле в обратном направлении.

Название: Re: Удаление нескольких вершин полилинии
Отправлено: Алексей (IdeaSoft) от 07-07-2018, 20:47:36
Все норм получилось