如何使用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>
答案 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);
其中a
和b
是起点和终点,length
和width
描述箭头。请注意,这个必须被“抚摸”,而不是“填充”,但也很容易获得一个坚实的箭头。
答案 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/