使用raphael的半圈

tlf*_*low 4 raphael

我对使用raphael js库非常陌生,而我正在努力解决这个问题.我正在尝试创建一个基于百分比的图表,其中100%将是一个完整的圆圈.我已经想出了圆圈部分,但是如何更改它以显示半圆为50%或四分之一圆为25%?

ama*_*dan 12

我建议在Raphael主页上查看示例背后的代码.应该很容易修改它以满足您的需求.

这个功能特别适合您

var rad = Math.PI / 180;
function sector(cx, cy, r, startAngle, endAngle, params) {
        var x1 = cx + r * Math.cos(-startAngle * rad),
        x2 = cx + r * Math.cos(-endAngle * rad),
        y1 = cy + r * Math.sin(-startAngle * rad),
        y2 = cy + r * Math.sin(-endAngle * rad);
    return paper.path(["M", cx, cy, "L", x1, y1, "A", r, r, 0, +(endAngle - startAngle > 180), 0, x2, y2, "z"]).attr(params);
}
Run Code Online (Sandbox Code Playgroud)

所以,50%的切片就是

var fifty = sector(100,100,50,0,180,{"fill":"red"});
var twentyfive = sector(100,100,50,180,270,{"fill":"red"});
Run Code Online (Sandbox Code Playgroud)

当然,这是使用学位 - 你可能想要包装它,以便你可以使用百分比.