You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
|
function draw_roulette(ctx, w, h, datalist){
|
|
|
|
var radius = h / 2 - 5;
|
|
|
|
var center = new Array(w / 2, h / 2);
|
|
|
|
var total = 0;
|
|
|
|
var sum = datalist.reduce((acc, value) => acc + value, total);
|
|
|
|
var lastend = 0;
|
|
|
|
var offset = Math.PI / 2;
|
|
|
|
for (i=0; i < datalist.length; i++){
|
|
|
|
var part = datalist[i];
|
|
|
|
|
|
|
|
ctx.beginPath();
|
|
|
|
ctx.fillStyle = colist[i];
|
|
|
|
ctx.moveTo(center[0], center[1]);
|
|
|
|
var arcsector = Math.PI * (2 * part / total);
|
|
|
|
ctx.arc(center[0], center[1], radius, lastend - offset, lastend + arcsector - offset, false);
|
|
|
|
ctx.lineTo(center[0], center[1]);
|
|
|
|
ctx.fill();
|
|
|
|
ctx.closePath();
|
|
|
|
lastend += arcsector;
|
|
|
|
}
|
|
|
|
}
|