Hi, ich bräuchte mal Hilfe.
Und zwar möchte ich gerne HSV Werte umwandeln in RGB Werte.
Ich habe das hier gefunden und schon ein wenig probiert, aber bekomme es nicht hin.
Das Original Script:
Code
/* accepts parameters
* h Object = {h:x, s:y, v:z}
* OR
* h, s, v
*/
function HSVtoRGB(h, s, v) {
var r, g, b, i, f, p, q, t;
if (arguments.length === 1) {
s = h.s, v = h.v, h = h.h;
}
i = Math.floor(h * 6);
f = h * 6 - i;
p = v * (1 - s);
q = v * (1 - f * s);
t = v * (1 - (1 - f) * s);
switch (i % 6) {
case 0: r = v, g = t, b = p; break;
case 1: r = q, g = v, b = p; break;
case 2: r = p, g = v, b = t; break;
case 3: r = p, g = q, b = v; break;
case 4: r = t, g = p, b = v; break;
case 5: r = v, g = p, b = q; break;
}
return {
r: Math.round(r * 255),
g: Math.round(g * 255),
b: Math.round(b * 255)
};
}
Alles anzeigen
Das was ich gerne machen möchte:
Ich habe 3 Objekte (h,s,v) wo z.B. die Werte drin sind: h=120 s=100 v=100 (Farbe Grün)
Jetzt möchte ich gerne das in den 3 Objekten die ich angelegt habe (r,g,b) die Werte für Grün dann drin stehen (0,255,0)
Ich habe das probiert, aber ohne Erfolg.
Weiß jemand wie es richtig gemacht wird?
Code
/* accepts parameters
* h Object = {h:x, s:y, v:z}
* OR
* h, s, v
*/
function HSVtoRGB(
h = getState("javascript.0.Geraete.Arduino.hue").val,
s = getState("javascript.0.Geraete.Arduino.saturation").val,
v = getState("javascript.0.Geraete.Arduino.dimmer").val)
{
var r, g, b, i, f, p, q, t;
if (arguments.length === 1) {
s = h.s, v = h.v, h = h.h;
}
i = Math.floor(h * 6);
f = h * 6 - i;
p = v * (1 - s);
q = v * (1 - f * s);
t = v * (1 - (1 - f) * s);
switch (i % 6) {
case 0: r = v, g = t, b = p; break;
case 1: r = q, g = v, b = p; break;
case 2: r = p, g = v, b = t; break;
case 3: r = p, g = q, b = v; break;
case 4: r = t, g = p, b = v; break;
case 5: r = v, g = p, b = q; break;
}
return {
r: Math.round(r * 255),
g: Math.round(g * 255),
b: Math.round(b * 255)
};
setState("javascript.0.Geraete.Arduino.r1"/*r1*/, r),
setState("javascript.0.Geraete.Arduino.g1"/*g1*/, g),
setState("javascript.0.Geraete.Arduino.b1"/*b1*/, b);
}
Alles anzeigen