mirror of
https://github.com/hyperion-project/hyperion.ng.git
synced 2023-10-10 13:36:59 +02:00
Allow random mood blobs color, set mood-blobs-full to random
Small change to allow a random start hue for mood blobs - adds a bit of spice instead of starting at the same color every time. Former-commit-id: 2b5a0250b95ac5632661d3b8fce3c1567f5daaa3
This commit is contained in:
parent
a0b81e9d4c
commit
3ba86a1253
@ -4,7 +4,7 @@
|
|||||||
"args" :
|
"args" :
|
||||||
{
|
{
|
||||||
"rotationTime" : 60.0,
|
"rotationTime" : 60.0,
|
||||||
"color" : [0,0,255],
|
"colorRandom" : true,
|
||||||
"hueChange" : 30.0,
|
"hueChange" : 30.0,
|
||||||
"blobs" : 5,
|
"blobs" : 5,
|
||||||
"reverse" : false,
|
"reverse" : false,
|
||||||
|
@ -2,10 +2,12 @@ import hyperion
|
|||||||
import time
|
import time
|
||||||
import colorsys
|
import colorsys
|
||||||
import math
|
import math
|
||||||
|
from random import random
|
||||||
|
|
||||||
# Get the parameters
|
# Get the parameters
|
||||||
rotationTime = float(hyperion.args.get('rotationTime', 20.0))
|
rotationTime = float(hyperion.args.get('rotationTime', 20.0))
|
||||||
color = hyperion.args.get('color', (0,0,255))
|
color = hyperion.args.get('color', (0,0,255))
|
||||||
|
colorRandom = bool(hyperion.args.get('colorRandom', False))
|
||||||
hueChange = float(hyperion.args.get('hueChange', 60.0))
|
hueChange = float(hyperion.args.get('hueChange', 60.0))
|
||||||
blobs = int(hyperion.args.get('blobs', 5))
|
blobs = int(hyperion.args.get('blobs', 5))
|
||||||
reverse = bool(hyperion.args.get('reverse', False))
|
reverse = bool(hyperion.args.get('reverse', False))
|
||||||
@ -34,6 +36,9 @@ baseColorChangeRate = max(0, baseColorChangeRate) # > 0
|
|||||||
|
|
||||||
# Calculate the color data
|
# Calculate the color data
|
||||||
baseHsv = colorsys.rgb_to_hsv(color[0]/255.0, color[1]/255.0, color[2]/255.0)
|
baseHsv = colorsys.rgb_to_hsv(color[0]/255.0, color[1]/255.0, color[2]/255.0)
|
||||||
|
if colorRandom:
|
||||||
|
baseHsv = (random(), baseHsv[1], baseHsv[2])
|
||||||
|
|
||||||
colorData = bytearray()
|
colorData = bytearray()
|
||||||
for i in range(hyperion.ledCount):
|
for i in range(hyperion.ledCount):
|
||||||
hue = (baseHsv[0] + hueChange * math.sin(2*math.pi * i / hyperion.ledCount)) % 1.0
|
hue = (baseHsv[0] + hueChange * math.sin(2*math.pi * i / hyperion.ledCount)) % 1.0
|
||||||
|
Loading…
Reference in New Issue
Block a user