Как добавить и дополнительный путь стрелки к пути указателя, используя Raphael JS

Как добавить и дополнительный путь стрелки к пути указателя, используя 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 ответа

Решение

Я смог это сделать, это обновленный скрипт.

    $(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/

Есть два варианта: один - использовать 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);

где a а также b начальная и конечная точки и length а также width опишите стрелку головы. Обратите внимание, что этот элемент должен быть "обведен", а не "заполнен", но также легко получить сплошную стрелку.

Другие вопросы по тегам