Raphael draw path with mouse

后端 未结 2 819
小鲜肉
小鲜肉 2020-12-29 14:26

I\'m using the raphael javascript library, and I\'d like to draw a straight line using the mouse. I\'d like to let the user click somewhere, place a single point of the path

相关标签:
2条回答
  • 2020-12-29 15:28

    From what I can tell you're doing it right. The only thing I will ad is that you could animate from one path to another instead of replacing the old one and you could enforce a maximum frame rate (say no more than 5 path updates per second, but you need to try and see what works for you).

    As for the documentation for path I don't think there is anything more that can be said. The method accepts a SVG path string and draws it. What you need to read may be the SVG documentation for path.

    How to animate a path:

    p = canvas.path("M0 0L100 0");
    p.animate({path: [["M", 0, 0], ["L", 0, 100]]}, 4000);
    
    0 讨论(0)
  • 2020-12-29 15:28

    There's actually a better way to do this, using path.attr('path'). path is an array of path part arrays, e.g.

    [
      ['M', 100, 100],
      ['L', 150, 150],
      ['L', 200, 150],
      ['Z']
    ]
    

    If you update it then you don't need to draw the path from scratch each time.

    Raphael.el.addPart = function (point) {
      var pathParts = this.attr('path') || [];
      pathParts.push(point);
      this.attr('path', pathParts);
    };
    
    var path = paper.path();
    path.addPart(['M', 100, 100]); //moveto 100, 100
    path.addPart(['L', 150, 150]); //lineto 150, 150
    path.addPart(['L', 200, 150]); //lineto 200, 150
    path.addPart(['Z']);           //closepath
    
    0 讨论(0)
提交回复
热议问题