0

我创建了一个带有圆形、矩形和线条的简单图像标记。我怎样才能删除我不需要的形状。我已将坐标点存储在数组中。我该如何进行任何帮助。这是小提琴

这是推入数组的函数

function onMouseUp(event) {
            console.log(cPath.points[0]);
            console.log(cPath.downpoints[0]);
            if(set == 1){
                i++;
                circles.push(circle);
                createElem('circle', i);
                cPath.points.push(event.point);
                cPath.downpoints.push((event.downPoint - event.point).length);
            }else if(set == 2){             j++;
                rects.push(rect);
                createElem('rect', j);
            }else if(set == 3){
                k++;
                lines.push(line);
                createElem('line', k);  
            }else if(set == 4){
                l++;
                createElem('Free Path', l);
            }
        };
4

1 回答 1

0

根据paperjs 文档路径有一个remove() 方法,它从您的 paperjs 文档中删除路径

当您将所有项目(路径)保存在数组中时,从画布中删除它们相对容易。这是一个示例 javascript 片段,它将删除给定数组中的所有项目:

function removeItems(items) {
    var len = items.length;
    while(--len < -1) {
       // remove item from the document using paperjs method
       items[len].remove();
       // also remove the item from our own array
       items.splice(len, 1);
    }
}

http://jsfiddle.net/PLzDC/3/
这是一个小提琴,它展示了如何在绘制圆时删除所有矩形(它在 mouseUp 上删除它们)

编辑:

从给定数组中删除仅具有给定名称的项目的片段

function removeItems(items, name) {
    var len = items.length;
    while(--len < -1) {
       if(items[len].name == name) {
            // remove item from the document using paperjs method
            items[len].remove();
            // also remove the item from our own array
            items.splice(len, 1);
       }
    }
}

用法(考虑到您实际上在创建时给了圆圈一个名称“circle1”):

removeItems(circles, 'circle1');
于 2013-06-05T21:08:59.837 回答