RUS  ENG 

проблема при удалении точки из полилинии

Страницы: 1
RSS
проблема при удалении точки из полилинии
 
Проблема в следующем - при удалении точки из полилинии (метод DeletePoint) нужная точка удаляется, но на место координат последней точки линии прописываются координаты первой точки.

Например:
pl - полилиния
pl.GetX(1) = 59983547
pl.GetY(1) = 30398498
pl.GetX(2) = 59984416
pl.GetY(2) = 30399035
pl.GetX(3) = 59985441
pl.GetY(3) = 30399976
pl.GetX(4) = 59985562
pl.GetY(4) = 30400376
pl.GetX(5) = 59985441
pl.GetY(5) = 30399976
pl.NumTops = 5

Выполняем код:
pl.DeletePoint(pl.NumTops-1); //удаляем предпоследнюю точку

Картина следующая:
pl.GetX(1) = 59983547
pl.GetY(1) = 30398498
pl.GetX(2) = 59984416
pl.GetY(2) = 30399035
pl.GetX(3) = 59985441
pl.GetY(3) = 30399976
pl.GetX(4) = 59983547
pl.GetY(4) = 30398498
pl.GetX(5) = 0
pl.GetY(5) = 0
pl.NumTops = 4

В чем причина такого странного результата и как с этим бороться?
Спасибо.
 
Скачайте обновление. Полилиния ошибочно обрабатывалась как полигон.
Только смотрите осторожно. В Вашем примере третья и пятая точка совпадают, поэтому при удалении четвертой точки удалится еще и пятая, которая станет четвертой и совпадет с третьей.
Т.е. результат будет

pl.GetX(1) = 59983547
pl.GetY(1) = 30398498
pl.GetX(2) = 59984416
pl.GetY(2) = 30399035
pl.GetX(3) = 59985441
pl.GetY(3) = 30399976
pl.NumTops = 3
 
так работает, спасибо
Страницы: 1