Тема: Как определить номера вершин сегмента polyline?

Понадобилось возможность добавления вершины в lwpolyline указанием точки на сегменте этой полилинии.
Есть метод:

plineObj.AddVertex n, newVertex

где n - номер новой вершины. В нем и загвоздка. Его нужно определять автоматически..
Как указанием точки на сегменте определить номера его вершин?
Может у кого-то есть более-менее простой алгоритм этого решения?

Re: Как определить номера вершин сегмента polyline?

Додумался. Вопрос снят..

Re: Как определить номера вершин сегмента polyline?

> Сидор Лютый
И код конечно тяжело выложить?
~'J'~

Re: Как определить номера вершин сегмента polyline?

> Fatty
Да нет же!.. Я б с удовольствием. Там просто 4 геометрических условия должны выполниться, которые только картинкой показать можно, а картинки здесь до сих пор невозможно прикреплять. Если у кого будет безвыходное положение, - пишите нарисую в письме..
Действительно, господа модераторы, если вы сюда заглядываете.. Не понимаю! Такой суперпосещаемый ресурс с такой активностью посетителей, а таких простых возможностей нет. Рано или поздно все-равно придется переходить на другой движок, так почему не "уже"?:)

Re: Как определить номера вершин сегмента polyline?

В лиспе это выполнить гораздо проще.
Т.к. параметр в вершине полилинии равен номеру вершины :

(setq selectp (entsel)) - выбираем полилинию
(fix(vlax-curve-getParamAtPoint (car selectp) (vlax-curve-getclosestpointto (car selectp) (cadr selectp)))) - получаем номер вершины после которой нужно вставить новую.

Re: Как определить номера вершин сегмента polyline?

> Эдуард
Эдуард!
О, какие люди!
Давно не слышно...
(Занят наверно)
Не оставляй своих овец, ты очень нужен этому
форуму
Так мало классики осталось, а кто будет высокое
прививать?
Уж не я это точно :)
А сколько славных имен уже не слышно:
A.Fursa (мой первый учитель), Шапокляк, даже VK и Fantomas {Smirnoff} уже
совсем редко тут бывают (и многие другие)
Суть не в лиспе или VBA, просто мне кажется
когда новичок идет по поиску, ему бы пригодилось
увидеть решение от мастеров таких как Лютый
Согласен на лиспе это проще намного
С уважением,
Олег
~'J'~

Re: Как определить номера вершин сегмента polyline?

Можно сюда поглядеть
https://www.caduser.ru/forum/topic22264.html
Однако, похоже это сложновато. А я постоянно пользуюсь этим.

Re: Как определить номера вершин сегмента polyline?

Моя идея добавления вершины одним кликом такова. разбить линию на двое, вокруг разлома собрать объекты, далее соеденить их.

Re: Как определить номера вершин сегмента polyline?

Сидор Лютый пишет:

Как указанием точки на сегменте определить номера его вершин?

1) OSMODE 545
2) создаем массив всех координат
3) берем попарно вершины и ишем принадлежность точки к отрезку http://algolist.manual.ru/maths/geom/belong/otr2d.php , в данной статье что то замудренно очень. И мне в голову пришла другая идея проверки принадлежности. определяем длинну отрезка, и сумму растояний от вершин до точки. если совпало зналит мы нашли необходимую вершину.
Как напишите не забудьте поделиться кодом :)