# File lib/png/pie.rb, line 22
  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