Sha256: 8b0f1b5e98c5a9d057776e24d202b80cd90511f6401d419bfa29ae82bd2862b0

Contents?: true

Size: 716 Bytes

Versions: 2

Compression:

Stored size: 716 Bytes

Contents

class Gradient 
    def initialize(origin, destination)
        @origin = origin
        @destination = destination
    end

    def colour_at(distance_percent)
        c = @origin.class.to_s.downcase

        origin_rgb = @origin.to_rgb
        destination_rgb = @destination.to_rgb

        delta_r = destination_rgb.r - origin_rgb.r
        delta_g = destination_rgb.g - origin_rgb.g
        delta_b = destination_rgb.b - origin_rgb.b

        approximation = RGB.new(delta_r * distance_percent + origin_rgb.r,
                                delta_g * distance_percent + origin_rgb.g,
                                delta_b * distance_percent + origin_rgb.b)
        approximation.send("to_" + c)
    end 

end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
colour-0.4.0 lib/gradient.rb
colour-0.4 lib/gradient.rb