我想在红色,黄色,绿色之间显示颜色,具体取决于1到100之间的数字.
1为绿色,100为红色,50为黄色.我想基本上在它之间创建一个渐变.
到目前为止,我尝试过:
$r = floor(255 * ($number / 100));
$g = 255 - $r;
Run Code Online (Sandbox Code Playgroud)
它有点像它,但给我棕色和深色,并且没有黄色.
Cze*_*ogy 11
这是因为你不应该同时改变两个通道,而是在前半部分升高R,在第二部分降低G.
尝试这样的功能:
function GreenYellowRed($number) {
$number--; // working with 0-99 will be easier
if ($number < 50) {
// green to yellow
$r = floor(255 * ($number / 50));
$g = 255;
} else {
// yellow to red
$r = 255;
$g = floor(255 * ((50-$number%50) / 50));
}
$b = 0;
return "$r,$g,$b";
}
Run Code Online (Sandbox Code Playgroud)
测试它:
$output = "";
for ($i = 1; $i <= 100; $i++) {
$rgb = GreenYellowRed($i);
$output .= "<div style='background-color: rgb($rgb)'>$rgb</div>";
}
echo $output;
Run Code Online (Sandbox Code Playgroud)