def self.pie_chart(diameter, pct_green,
good_color=PNG::Color::Green, bad_color=PNG::Color::Red)
diameter += 1 if diameter % 2 == 0
radius = (diameter / 2.0).to_i
pct_in_deg = FULL * pct_green
rad_to_deg = HALF / Math::PI
canvas = PNG::Canvas.new(diameter, diameter)
(-radius..radius).each do |x|
(-radius..radius).each do |y|
magnitude = Math.sqrt(x*x + y*y)
if magnitude <= radius then
angle = PNG.angle(x, y)
color = ((angle <= pct_in_deg) ? good_color : bad_color)
rx, ry = x+radius, y+radius
canvas[ rx, ry ] = color
end
end
end
canvas
end