Sha256: 438db0585c0fa3a9da38e79e10a4b6c08f91f73352d526cc5f8182adc1fde03d
Contents?: true
Size: 807 Bytes
Versions: 1
Compression:
Stored size: 807 Bytes
Contents
require 'ws_light/set/color_set' module WSLight module Set # Creates a moving rainbow (actually a color circle) class RainbowSet < ColorSet def init @frequency = Math::PI / @length end def next_frame @frame_count += 1 end def frame next_frame set = [] @length.times do |i| set << pixel(i) end set += set.reverse if type == :double set end def pixel(number) number = @full_length - 1 - number if number >= @length x = @frequency * (number + @frame_count) Color.new( (Math.sin(x)**2 * 127), (Math.sin(x + 2.0 * Math::PI / 3.0)**2 * 127), (Math.sin(x + 4.0 * Math::PI / 3.0)**2 * 127) ) end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
ws_light-0.4.2 | lib/ws_light/set/rainbow_set.rb |