""" This creates a palette of colors, draws a pattern and rotates through the palette creating a moving rainbow. """ from math import sqrt, cos, sin, radians from adafruit_featherwing import neopixel_featherwing neopixel = neopixel_featherwing.NeoPixelFeatherWing() # Remap the calculated rotation to 0 - 255 def remap(vector): return int(((255 * vector + 85) * 0.75) + 0.5) # Calculate the Hue rotation starting with Red as 0 degrees def rotate(degrees): cosA = cos(radians(degrees)) sinA = sin(radians(degrees)) red = cosA + (1.0 - cosA) / 3.0 green = 1./3. * (1.0 - cosA) + sqrt(1./3.) * sinA blue = 1./3. * (1.0 - cosA) - sqrt(1./3.) * sinA return (remap(red), remap(green), remap(blue)) palette = [] pixels = [] # Generate a rainbow palette for degree in range(0, 360): color = rotate(degree) palette.append(color[0] << 16 | color[1] << 8 | color[2])
""" This creates a palette of colors, draws a pattern and rotates through the palette creating a moving rainbow. """ from math import sqrt, cos, sin, radians from adafruit_featherwing import neopixel_featherwing neopixel = neopixel_featherwing.NeoPixelFeatherWing(brightness=0.1) # Remap the calculated rotation to 0 - 255 def remap(vector): return int(((255 * vector + 85) * 0.75) + 0.5) # Calculate the Hue rotation starting with Red as 0 degrees def rotate(degrees): cosA = cos(radians(degrees)) sinA = sin(radians(degrees)) red = cosA + (1.0 - cosA) / 3.0 green = 1. / 3. * (1.0 - cosA) + sqrt(1. / 3.) * sinA blue = 1. / 3. * (1.0 - cosA) - sqrt(1. / 3.) * sinA return (remap(red), remap(green), remap(blue)) palette = [] pixels = [] # Generate a rainbow palette for degree in range(0, 360):