@kosta_9

Как отрисовать линии мышкой в SVG?

Всем добры день. Столкнулся с проблемой (из-за нехватки знаний) в нарисовке линии мышкой в SVG. Есть следующий код:
...
var s = Snap(500, 200);
            var line1 = s.line(20, 30, 100, 100);
            line1.attr ({
                stroke: "black"
            });
 
            // Определение координат мыши__________________
            var mouse = {
            getX: function(e) {
            return e.offsetX;
            },
            getY: function(e) {
            return e.offsetY;
            }
            };
                        //_____________________________________________
 
            s.mousedown (function (e){
            line1.attr({x1: mouse.getX(e)});
            line1.attr({y1: mouse.getY(e)});
            
            
            s.mousemove (function(e){
            line1.attr('x2', mouse.getX(e));
            line1.attr('y2', mouse.getY(e));
            })
            })
            s.mouseup (function(e){
            line1.attr({x2: mouse.getX(e)});
            line1.attr({y2: mouse.getY(e)});
                })

Это максимум на что хватило знаний. В моем примере идет лишь изменение координат линии, и то она не отвязывается от mousemove при отпускании мышки. Охото реализовать следующее: при нажатии мышки на холст - чтоб создавалось начало линии, при движении - другой конец линии был привязан к курсору, то есть динамическая отрисовка, и при отпускании линия фиксировалась на своем месте.
Использовал библиотеку Snap.svg. Дайте, пожалуйста, совет или пример кода для данной отрисовки, необязательно в Snap. Заранее спасибо.
  • Вопрос задан
  • 901 просмотр
Решения вопроса 1
По клику начинается/завершается рисование
https://jsfiddle.net/bc1n82zc/7/
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы