mirror of
https://github.com/hyperion-project/hyperion.ng.git
synced 2023-10-10 13:36:59 +02:00
new effect plasma (#792)
Signed-off-by: Paulchen-Panther <Paulchen-Panter@protonmail.com>
This commit is contained in:
parent
510bb903ae
commit
9e149308f4
@ -808,6 +808,8 @@
|
||||
"edt_conf_net_localAdminAuth_expl": "",
|
||||
"edt_eff_collision_header": "",
|
||||
"edt_eff_collision_header_desc": "",
|
||||
"edt_eff_plasma_header": "",
|
||||
"edt_eff_plasma_header_desc": "",
|
||||
"edt_eff_explodeRadius": "",
|
||||
"edt_dev_spec_printTimeStamp_title": "",
|
||||
"edt_eff_ledtest_header": "",
|
||||
|
@ -710,7 +710,9 @@
|
||||
"edt_eff_flag_header_desc": "Verpasse deinen LEDs die Farben deines Landes. Du kannst mehr als eine Flagge auswählen, je nach Intervall werden diese dann abwechselnd angezeigt.",
|
||||
"edt_eff_collision_header": "Farbkollision",
|
||||
"edt_eff_collision_header_desc": "Zwei Farbprojektile werden von zufälligen Positionen gesendet und kollidieren miteinander",
|
||||
"edt_eff_explodeRadius": "Detonationsreichweite ",
|
||||
"edt_eff_plasma_header": "Plasma",
|
||||
"edt_eff_plasma_header_desc": "Farbverzerrungen in verschiedenen Richtungen",
|
||||
"edt_eff_explodeRadius": "Detonationsreichweite",
|
||||
"edt_eff_enum_all": "Alle",
|
||||
"edt_eff_enum_all-together": "Alle zusammen",
|
||||
"edt_eff_enum_list": "LED Liste",
|
||||
|
@ -709,6 +709,8 @@
|
||||
"edt_eff_flag_header_desc" : "Let your leds shine bright in the colours of your country. You can select more than one flag and they will change based on the interval time.",
|
||||
"edt_eff_collision_header": "colour collision",
|
||||
"edt_eff_collision_header_desc": "Two colour projectiles are sent from random positions and collide with each other",
|
||||
"edt_eff_plasma_header": "Plasma",
|
||||
"edt_eff_plasma_header_desc": "Color distortion in different directions",
|
||||
"edt_eff_explodeRadius": "Detonation Range ",
|
||||
"edt_eff_enum_all" : "All",
|
||||
"edt_eff_enum_all-together" : "All together",
|
||||
|
@ -808,6 +808,8 @@
|
||||
"edt_conf_net_localAdminAuth_expl": "Cuando está habilitado, el acceso de administración desde tu red doméstica necesita una contraseña.",
|
||||
"edt_eff_collision_header": "colisión de colores",
|
||||
"edt_eff_collision_header_desc": "Dos proyectiles de color se envían desde posiciones aleatorias y chocan entre sí",
|
||||
"edt_eff_plasma_header": "",
|
||||
"edt_eff_plasma_header_desc": "",
|
||||
"edt_eff_explodeRadius": "Rango de detonación",
|
||||
"edt_dev_spec_printTimeStamp_title": "Añadir marca de tiempo",
|
||||
"edt_eff_ledtest_header": "Prueba de Led",
|
||||
|
@ -808,6 +808,8 @@
|
||||
"edt_conf_net_localAdminAuth_expl": "Quando abilitato, l'accesso da amministratore dal tuo network domestico necessita di password",
|
||||
"edt_eff_collision_header": "collisione colore",
|
||||
"edt_eff_collision_header_desc": "Due proiettili colorati partono da due posizioni casuali e collidono tra loro",
|
||||
"edt_eff_plasma_header": "",
|
||||
"edt_eff_plasma_header_desc": "",
|
||||
"edt_eff_explodeRadius": "Raggio di detonazione ",
|
||||
"edt_dev_spec_printTimeStamp_title": "Aggiungi timestamp",
|
||||
"edt_eff_ledtest_header": "",
|
||||
|
@ -808,6 +808,8 @@
|
||||
"edt_conf_net_localAdminAuth_expl": "",
|
||||
"edt_eff_collision_header": "",
|
||||
"edt_eff_collision_header_desc": "",
|
||||
"edt_eff_plasma_header": "",
|
||||
"edt_eff_plasma_header_desc": "",
|
||||
"edt_eff_explodeRadius": "",
|
||||
"edt_dev_spec_printTimeStamp_title": "",
|
||||
"edt_eff_ledtest_header": "",
|
||||
|
@ -808,6 +808,8 @@
|
||||
"edt_conf_net_localAdminAuth_expl": "",
|
||||
"edt_eff_collision_header": "",
|
||||
"edt_eff_collision_header_desc": "",
|
||||
"edt_eff_plasma_header": "",
|
||||
"edt_eff_plasma_header_desc": "",
|
||||
"edt_eff_explodeRadius": "",
|
||||
"edt_dev_spec_printTimeStamp_title": "",
|
||||
"edt_eff_ledtest_header": "",
|
||||
|
@ -808,6 +808,8 @@
|
||||
"edt_conf_net_localAdminAuth_expl": "",
|
||||
"edt_eff_collision_header": "",
|
||||
"edt_eff_collision_header_desc": "",
|
||||
"edt_eff_plasma_header": "",
|
||||
"edt_eff_plasma_header_desc": "",
|
||||
"edt_eff_explodeRadius": "",
|
||||
"edt_dev_spec_printTimeStamp_title": "",
|
||||
"edt_eff_ledtest_header": "",
|
||||
|
@ -808,6 +808,8 @@
|
||||
"edt_conf_net_localAdminAuth_expl": "När aktiverad, behövs ett lösenord för administrering i nätverket.",
|
||||
"edt_eff_collision_header": "färgkollision",
|
||||
"edt_eff_collision_header_desc": "Två färgprojektiler skickas från slumpmässiga positioner och kolliderar med varandra",
|
||||
"edt_eff_plasma_header": "",
|
||||
"edt_eff_plasma_header_desc": "",
|
||||
"edt_eff_explodeRadius": "Detonationsområde",
|
||||
"edt_dev_spec_printTimeStamp_title": "Lägg till tidsstämpel",
|
||||
"edt_eff_ledtest_header": "LED-test",
|
||||
|
8
effects/plasma.json
Normal file
8
effects/plasma.json
Normal file
@ -0,0 +1,8 @@
|
||||
{
|
||||
"name" : "Plasma",
|
||||
"script" : "plasma.py",
|
||||
"args" :
|
||||
{
|
||||
"sleepTime" : 0.20
|
||||
}
|
||||
}
|
35
effects/plasma.py
Normal file
35
effects/plasma.py
Normal file
@ -0,0 +1,35 @@
|
||||
import hyperion, time, colorsys, math
|
||||
|
||||
hyperion.imageMinSize(64, 64)
|
||||
width = hyperion.imageWidth()
|
||||
height = hyperion.imageHeight()
|
||||
sleepTime = float(hyperion.args.get('sleepTime', 0.2))
|
||||
|
||||
def mapto(x, in_min, in_max, out_min, out_max):
|
||||
return float((x - in_min) * (out_max - out_min) / (in_max - in_min) + out_min)
|
||||
|
||||
pal = []
|
||||
for h in range(256):
|
||||
r, g, b = colorsys.hsv_to_rgb(mapto(h, 0.0, 255.0, 0.0, 1.0), 1.0, 1.0)
|
||||
pal.append( bytearray( (int(r*255), int(g*255), int(b*255)) ) )
|
||||
|
||||
plasma = [[]]
|
||||
for x in range(width):
|
||||
plasma.append([])
|
||||
for y in range(height):
|
||||
color = int(128.0 + (128.0 * math.sin(x / 16.0)) + \
|
||||
128.0 + (128.0 * math.sin(y / 8.0)) + \
|
||||
128.0 + (128.0 * math.sin((x+y)) / 16.0) + \
|
||||
128.0 + (128.0 * math.sin(math.sqrt(x**2.0 + y**2.0) / 8.0))) / 4
|
||||
plasma[x].append(color)
|
||||
|
||||
while not hyperion.abort():
|
||||
ledData = bytearray()
|
||||
mod = time.clock() * 100
|
||||
for x in range(height):
|
||||
for y in range(width):
|
||||
ledData += pal[int((plasma[y][x] + mod) % 256)]
|
||||
|
||||
hyperion.setImage(width,height,ledData)
|
||||
time.sleep(sleepTime)
|
||||
|
18
effects/schema/plasma.schema.json
Normal file
18
effects/schema/plasma.schema.json
Normal file
@ -0,0 +1,18 @@
|
||||
{
|
||||
"type":"object",
|
||||
"script" : "plasma.py",
|
||||
"title": "edt_eff_plasma_header",
|
||||
"required": true,
|
||||
"properties": {
|
||||
"sleepTime": {
|
||||
"type": "number",
|
||||
"title":"edt_eff_sleeptime",
|
||||
"default": 0.20,
|
||||
"minimum" : 0.01,
|
||||
"step": 0.01,
|
||||
"append" : "edt_append_s",
|
||||
"propertyOrder" : 1
|
||||
}
|
||||
},
|
||||
"additionalProperties": false
|
||||
}
|
Loading…
Reference in New Issue
Block a user