PaperJS для получения координат фигур (круг, прямоугольник и т. д.)

Я создал простой маркер изображения, используя paperJS. Теперь мне нужно добавить опцию отмены, чтобы создать ее, мне нужно сохранить все координаты и кнопку для отмены. Как я могу это сделать, кто-нибудь может мне помочь. Это мой сценарий.

function onMouseDrag(event) {
            if(set == 1){
                    path = new Path.Circle({
                        center: event.point,
                        radius: (event.downPoint - event.point).length,
                        fillColor: null,
                        strokeColor: '#e9e9ff',
                        strokeWidth: 1
                    });
            }else if(set == 2){
                var rectangle = new Rectangle(event.point, event.downPoint);
                var path = new Path.Rectangle(rectangle);
                path.fillColor = null;
                path.strokeColor = '#e9e9ff';
                path.strokeWidth = 1;   
            }else if(set == 3){
                var path = new Path.Line({
                        from: event.point,
                        to : event.downPoint,
                        strokeColor: 'black'
                    });
            }else if(set == 4){
                        var path = new PointText({
                        point: event.point,
                        content: 'The contents of the point text',
                        fillColor: 'black',
                        fontSize: 25
                    }); 
            }
                  path.removeOnDrag();
        };

        function onMouseUp(event) {
                circles.push(path);
        };

А это мой html.

<div class="menu-list">
    <input type="button" value="Circle" onClick="return set=1;">
    <input type="button" value="Rectangle" onClick="return set=2;">
    <input type="button" value="Line" onClick="return set=3;">
    <input type="button" value="Text" onClick="return set=4;">
</div>
<div class="img-mark">
    <canvas id="canvas" resize></canvas>
</div>
<div class="mark-list">

</div>

person chiyango    schedule 04.06.2013    source источник
comment
Поскольку вы не переупорядочиваете фигуры, почему бы не удалить с помощью кнопки отмены последний дочерний элемент массива кругов?   -  person Alex Blackwood    schedule 05.06.2013
comment
Если я создам первый круг, он должен отображаться как круг1 и второй круг2, чтобы я мог удалить круг1 или круг2. Если вы не можете понять, я дам ссылку на сайт.   -  person chiyango    schedule 05.06.2013
comment
Да, справочный сайт приветствуется   -  person Alex Blackwood    schedule 05.06.2013
comment
см. здесь   -  person chiyango    schedule 05.06.2013


Ответы (1)


Я не совсем уверен, понял ли я, что вы хотите, но попробуйте следующее: вы можете выбрать определенный путь или форму с помощью hitResult:

var hitResult = project.hitTest(event.point, hitOptions);
if (!hitResult) {
    return;
} else {
    path = hitResult.item;
}

см. этот пример: http://paperjs.org/examples/hit-testing/
и затем вы можете вызвать path.remove() (http://paperjs.org/reference/path), когда пользователь нажимает удалить

PS: вместо использования set == x вам следует взглянуть на http://paperjs.org/reference/tool. Вы можете определить различные инструменты с помощью circleTool = new Tool();, а затем вызвать circleTool.activate() и circleTool.onMouseDown = function() {...}.

person Alexander Scholz    schedule 30.06.2013