KonvaJs: изменение точек линии при перетаскивании

Я использую в своем проекте KonvaJs. Я создаю многоугольник, используя Konva.Line, задав closed:true. Мне нужно выяснить, находится ли точка внутри многоугольника или нет. Я использую алгоритм Ray-Casting, чтобы найти точку в многоугольнике, и он работает нормально. Но проблема возникает при перетаскивании многоугольника. Когда он перетаскивается, вершины (точки) остаются прежними, и из-за этого я не могу получить новые координаты. Как мне изменить точки многоугольника, чтобы я мог их использовать? Вот plunkr.


person Hitesh Kumar    schedule 26.02.2016    source источник


Ответы (1)


При перетаскивании Konva изменит {x,y} свойства узла (круг, прямоугольник, линия и т. Д.). Все, что вам нужно, это добавить x и y к points:

vs.push({
  x: points[i] + poly.x(),
  y: points[i + 1] + poly.y()
});

http://plnkr.co/edit/P6xTokR4bR8o1D180k40?p=preview

person lavrton    schedule 26.02.2016
comment
Ты прибил его, брат. Благодаря тонну. :) - person Hitesh Kumar; 26.02.2016
comment
Привет, Лавртон! Когда фигура добавляется в группу, и я перетаскиваю группу, добавление координатного подхода не работает должным образом. Допустим, у меня есть кружок в группе. Когда группа перетаскивается, мне нужно получить обновленное положение круга. Добавление x, y к положению круга неправильно обновляет координаты. Я имею в виду, что он переводит круг в другое положение :( В этом случае что мне делать? Я создал plunkr. plnkr.co/edit/V7RWHYZUH8wndDhDioXH?p=preview - person Hitesh Kumar; 28.02.2016
comment
@HiteshKumar, зачем просто добавлять их в одну перетаскиваемую группу? - person lavrton; 29.02.2016
comment
Мне нужно создать многоугольник, который должен иметь поведение, аналогичное poylgon карты Google, примерно так: plnkr.co / edit / 6uusoIsdP3oqzRwiQiEl? p = preview Мне не нужно реализовывать среднюю часть многоугольника. - person Hitesh Kumar; 29.02.2016