Pie Chart
by Johan Vandeplas
CoffeeScript
r = 9
p = 25
# Converts from degrees to radians.
toRad = (degrees) ->
return degrees * Math.PI / 180
# Converts from radians to degrees.
toDeg = (radians) ->
return radians * 180 / Math.PI
# Creates canvas 320Ă— 200 at 10, 50
paper = Raphael(10, 50, 320, 200)
circle = paper.circle(r, r, r)
circle.attr("fill", "#ddd")
circle.attr("stroke", false)
if p <= 50
a = toRad(3.6 * p)
xa = r * Math.sin(a)
ya = r - (r * Math.cos(a))
arc1 = paper.path("M#{r},#{r} v-#{r} a#{r},#{r} 0 0 1 #{xa},#{ya} z")
arc1.attr("fill", "#2cb944")
arc1.attr("stroke", false)
else
arc1 = paper.path("M#{r},#{r} v-#{r} a#{r},#{r} 0 0 1 0,#{ 2*r } z")
arc1.attr("fill", "#2cb944")
arc1.attr("stroke", false)
a = toRad(3.6 * (p - 50))
xa = r * Math.sin(a)
ya = r - (r * Math.cos(a))
console.log(xa, ya)
arc2 = paper.path("M#{r},#{r} v#{r} a#{r},#{r} 0 0 1 #{-1 *xa},#{-1 *ya} z")
arc2.attr("fill", "#2cb944")
arc2.attr("stroke", false)