# File lib/cairo/color.rb, line 129
      def to_hsv
        max = [@red, @blue, @green].max
        if max > 0
          min = [@red, @blue, @green].min
          max_min = max - min
          case max
          when @red
            numerator = @green - @blue
            angle = 0
          when @green
            numerator = @blue - @red
            angle = 120
          when @blue
            numerator = @red - @green
            angle = 240
          end
          h = max_min > 0 ? 60 * numerator / max_min + angle : 0.0
          s = max_min / max
        else
          h = 0.0
          s = 0.0
        end
        v = max
        HSV.new(h, s, v, @alpha)
      end