In PHP habe ich eine Liste mit Werten von 0 bis 1 und alles dazwischen. Ich möchte jedem Wert seine eigene Farbe geben.PHP - Erzeuge Farbe von Grün -> Schwarz -> Rot
Ich möchte 0 grün, 0,5 schwarz und 1 wird rot sein. Ein Wert wie 0.1 sollte immer noch grün sein, beginnt aber etwas zu schwarz zu werden. Ein Wert wie 0.6 ist schwarz mit einem kleinen Farbton in Richtung Rot.
Ich habe versucht, von RGB-Methode: Generate colors between red and green for a power meter?
$R = (255 * $percentage)/100;
$G = (255 * (100 - $percentage))/100 ;
$B = 0;
Aber das schafft eine Farbe direkt zwischen grün und rot, und ich kann in der Mitte nicht schwarz verwenden.
habe ich versucht, die HSL zu RGB aus: HSL to RGB color conversion
/**
* Converts an HSL color value to RGB. Conversion formula
* adapted from http://en.wikipedia.org/wiki/HSL_color_space.
* Assumes h, s, and l are contained in the set [0, 1] and
* returns r, g, and b in the set [0, 255].
*
* @param {number} h The hue
* @param {number} s The saturation
* @param {number} l The lightness
* @return {Array} The RGB representation
*/
function hslToRgb(h, s, l){
var r, g, b;
if(s == 0){
r = g = b = l; // achromatic
}else{
var hue2rgb = function hue2rgb(p, q, t){
if(t < 0) t += 1;
if(t > 1) t -= 1;
if(t < 1/6) return p + (q - p) * 6 * t;
if(t < 1/2) return q;
if(t < 2/3) return p + (q - p) * (2/3 - t) * 6;
return p;
}
var q = l < 0.5 ? l * (1 + s) : l + s - l * s;
var p = 2 * l - q;
r = hue2rgb(p, q, h + 1/3);
g = hue2rgb(p, q, h);
b = hue2rgb(p, q, h - 1/3);
}
return [Math.round(r * 255), Math.round(g * 255), Math.round(b * 255)];
}
Aber das schafft eine Farbe von grün bis rot bis weiß. Ich möchte, dass es von Grün zu Schwarz zu Rot wechselt. Gibt es das überhaupt, kann ich das schaffen?
Sie haben Javascript-Code für eine mit PHP getaggte Frage gepostet. Sind Sie sicher, dass Sie nicht Javascript verwenden, um dies zu tun? – hRdCoder
Oh ja, tut mir leid. Ich habe es nur in PHP konvertiert, den gleichen Code, nur die Variablen sind jetzt für PHP. – DijkeMark