View difference between Paste ID: fC9JXZez and DG9nkaLT
SHOW: | | - or go back to the newest paste.
1-
//any better fix,email me [email protected]
1+
<!--
2
any better fix,email me [email protected]
3
-->
4
<html>
5
<head>
6
<title>Circluar Chart</title>
7
</head>
8
<body>
9
10
11
<canvas	id="canvas"	width="400"	height="400"></canvas>
12
<canvas	id="canvas2"	width="200"	height="200"></canvas>
13
14
<script>
15
function	drawChart(canvasID,array)
16
{
17
	var i,sum=0;
18
	for(i=0;i<array.length;i++)
19
		sum+=array[i];
20
	var canvas = document.getElementById(canvasID);
21
	var context = canvas.getContext("2d");
22
	var centerX = canvas.width / 2;
23
	var centerY = canvas.height / 2;
24
	var radius = Math.min(centerX,centerY);
25
	var startingAngle,endingAngle;
26
	var lastAngle = 0;
27
	var counterclockwise = false;
28
	//anything better than black!
29
	oldColor="#000000";
30
	array.sort();
31
	// Draw the 1s with bigger area first
32
	for(i=array.length-1;i>=0;i--)
33
	{
34
		context.beginPath();
35
		startingAngle=lastAngle;
36
		endingAngle=startingAngle+Math.PI*2*array[i]/sum;
37
		context.arc(centerX, centerY, radius, startingAngle, endingAngle, counterclockwise);
38
		context.closePath();
39
		//pick a different random color ,other than the last 1
40
		while(context.fillStyle==oldColor)
41
			context.fillStyle="#"+(Math.floor(Math.random()*parseInt("FFFFFF",16))).toString(16).toUpperCase();
42
		oldColor=context.fillStyle;
43
    		context.fill();		
44
		context.beginPath(); // begin custom shape
45
		context.moveTo(centerX, centerY);
46
		context.lineTo(centerX+Math.cos(startingAngle)*radius ,centerY+Math.sin(startingAngle)*radius);
47
		context.lineTo(centerX+Math.cos(endingAngle)*radius ,centerY+Math.sin(endingAngle)*radius);
48
		context.lineTo(centerX,centerY);
49
		context.closePath();
50
		context.fill();
51
		lastAngle=endingAngle;
52
	}
53
}
54
55
56
drawChart("canvas",[1,2,3]);
57
drawChart("canvas2",[1,3,9]);
58
</script>
59
</body>
60
</html>