Skip welcome & menu and move to editor
Welcome to JS Bin
Load cached copy from
 
<!DOCTYPE html>
<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js"></script>
<script src="http://cdnjs.cloudflare.com/ajax/libs/raphael/2.1.0/raphael-min.js"></script>
<meta charset=utf-8 />
<title>Gradient</title>
</head>
<body>
  
  <div id="paper">
  </div>
  
</body>
</html>
 
var paper = Raphael("paper", 500, 500);
    var total=30;
    var center_x=200;
    var center_y=200;
    var radie=200;
    var val = 360 / total;
    
    for (var i=0; total>=i; i++) {
        var start=val*i;
        var gradientAngle=val*(total-i);
        var angle = (start + val % 360) * Math.PI / 180;
       renderPiePiece(center_x, center_y, radie, start, start+val, gradientAngle);
    }
    function renderPiePiece(center_x, center_y, radie, start_angle, end_angle, gradientAngle) {
        var flag = (end_angle - start_angle) > 180;
        start_angle = (start_angle % 360) * Math.PI / 180;
        end_angle = (end_angle % 360) * Math.PI / 180;
              
        paper
            .path(
                ["M", center_x, center_y,
                "l", radie * Math.cos(start_angle), radie * Math.sin(start_angle), 
                "A", radie, radie, 0, +flag, 1, center_x + radie * Math.cos(end_angle), center_y + radie * Math.sin(end_angle), 
                "z"]
            ).attr({
                stroke:'black',
                "stroke-width":1,
                fill:gradientAngle+'-#fff:0-#000'
            });
        }
Output 300px

You can jump to the latest bin by adding /latest to your URL

Dismiss x
public
Bin info
anonymouspro
0viewers