Method: WSLight::Set::RainbowSet#pixel

Defined in:
lib/ws_light/set/rainbow_set.rb

#pixel(number) ⇒ Object



28
29
30
31
32
33
34
35
36
# File 'lib/ws_light/set/rainbow_set.rb', line 28

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