from colormath.color_objects import HSVColor, sRGBColor from colormath.color_conversions import convert_color import time import math def rainbow_whole(framecount, index, target): current_degree = framecount % 360 hsv = HSVColor(current_degree, 1, 1) rgb = [ x for x in convert_color(hsv, sRGBColor).get_upscaled_value_tuple() ] target[0] = rgb[0] target[1] = rgb[1] target[2] = rgb[2] def rainbow_whole_offset_stat(framecount, index, target): offset = index*90 current_degree = (framecount + offset) % 360 hsv = HSVColor(current_degree, 1, 1) rgb = [ x for x in convert_color(hsv, sRGBColor).get_upscaled_value_tuple() ] target[0] = rgb[0] target[1] = rgb[1] target[2] = rgb[2] def rainbow_whole_offset_dyn(framecount, index, target): offset_hue_pixel = math.sin(framecount / 10000)*90*(index+1) saturation_pixel = math.fabs(math.cos(framecount / 5000))*70 current_hue_degree = (framecount / 1000 + offset_hue_pixel) % 360 current_sat = (30+saturation_pixel) / 100 hsv = HSVColor(current_hue_degree, current_sat, 1) rgb = [ x for x in convert_color(hsv, sRGBColor).get_upscaled_value_tuple() ] target[0] = rgb[0] target[1] = rgb[1] target[2] = rgb[2] def two_colors(framecount, index, target, hue1, hue2): saturation_pixel = 1 hue_min = min(hue1, hue2) hue_max = max(hue1, hue2) current_hue_degree = hue_min + (hue_max - hue_min) / 2 + math.sin(framecount / 400 + index*100)*(hue_max - hue_min)/2 current_sat = 1 hsv = HSVColor(current_hue_degree, current_sat, 1) rgb = [ x for x in convert_color(hsv, sRGBColor).get_upscaled_value_tuple() ] target[0] = rgb[0] target[1] = rgb[1] target[2] = rgb[2] def two_colors_red_blue(framecount, index, target): two_colors(framecount, index, target, 210, 359) def two_colors_red_red(framecount, index, target): two_colors(framecount, index, target, 0, 30) def two_colors_cyan_blue(framecount, index, target): two_colors(framecount, index, target, 180, 240) def two_colors_cyan_orange(framecount, index, target): two_colors(framecount, index, target, 25, 180)