Когда я создаю многоугольник, используя draw()
, он вставляет несколько точек 2 раза.Например, когда я создаю многоугольник с 4 точками
<polygon id="SvgjsPolygon1063" points="179,177 179,177 397,147 323,381 323,381 88,350 88,350" class="labelbox shape"></polygon>
Если я удаляю повторяющиеся точки вручную из элемента, я вижу, что нет никакой разницы в форме.Но если я перемещаю или изменяю форму многоугольника, он снова вставляет 7 точек.
- В случае 3-точечного (треугольника) многоугольника, общее количество очков составляет 5.
- В случае 4-точечного многоугольникаобщее количество баллов равно 7.
- В случае многоугольника из 5 баллов общее количество баллов равно 8.
Будет полезно, если вы сможете объяснить логику, чтобы я мог сохранять уникальные точкии восстановите их правильно.
Упрощенный код из основного приложения ;
var createPolygon = function(){//TODO: bug: creating duplicate points
var poly = myCanvas.nested().polygon().addClass('labelpolygon shape').draw();
poly.resize();
poly.parent().draggable();
poly.on('drawstart', function(e){
document.addEventListener('keydown', function(e){
if(e.keyCode == 13){
poly.draw('done');
poly.off('drawstart');
}
});
});
return poly;
}
myCanvas.on('mousedown', function(event){
if(!alreadyDrawing){
var currentTool = createPolygon(event,myCanvas);
currentTool.on('drawstart', function(){
alreadyDrawing = true;
});
currentTool.on('resizedone', function(){
//update data
});
currentTool.draw(event);
selectedElement = currentTool;
}
});
myCanvas.on('mouseup', function(event){
selectedElement.draw(event);
});
function attachEvents(currentTool){
currentTool.parent().on('click',function(e) {
currentTool.selectize({ rotationPoint: false});
e.stopPropagation();
});
}