如何使用raphael js向指针路径添加和额外的路径箭头

时间:2012-09-27 07:40:41

标签: javascript jquery html svg raphael

如何使用raphael js向指针路径添加和添加路径箭头?我一直在尝试添加它而没有运气。

这是javascript

<script type="text/javascript">

    $(function(){
        var r = Raphael("gauge_bg2", 200, 200);
        var g = r.gauge(0, 180);


        g.bg(r.circle(100, 100, 100).attr({fill:'#193442','stroke-width': '0'}), [100, 100]);

        g.pointer(r.rect(0, 0, 100, 10).attr({fill: '#fff', 'stroke-width': '0'}), [100, 5]);

//      g.Arrowshape(r.triangle(300, 0, 100).attr({fill:'#193442','stroke-width': '0'}), [100, 100]);

        setInterval(function(){
            var percent = Math.floor(Math.random()*100);
            g.move(percent);
        }, 3000);
    });

</script>

我创建了http://jsfiddle.net/creativestudio/VH3fR/3/

2 个答案:

答案 0 :(得分:3)

有两种选择:一种是使用Raphael.Set结合指针路径和箭头,另一种是用更通用的路径()替换指针的rect()并在那里绘制箭头。箭头的代码可能如下所示:

    paper.path("M{0},{1}L{2},{3}L{4},{5}M{2},{3}L{4},{6}", a.x, a.y, b.x, b.y, b.x - length, b.y - width, b.y + width);

其中ab是起点和终点,lengthwidth描述箭头。请注意,这个必须被“抚摸”,而不是“填充”,但也很容易获得一个坚实的箭头。

答案 1 :(得分:0)

我能够做到这一点,这是更新后的脚本。

    $(function(){
        var r = Raphael("gauge", 200, 200);
        var g = r.gauge(0, 180);

        g.bg(r.circle(100, 100, 100).attr({fill:'','stroke-width': '0'}), [100, 100]);

        g.pointer(r.path('M 80,96 15,96 15,90 0,100 15,110 15,104 80,104 100,104 100,96 z').attr({fill: '#fff', 'stroke-width': '0'}).transform(""), [0, 0]);

        setInterval(function(){
            var percent = Math.floor(Math.random()*100);
            g.move(percent);
        }, 3000);
    });

以下是更新的jsFiddle http://jsfiddle.net/creativestudio/VH3fR/11/