改进代码:private static Color GetRainbowColor(double k) { if (k < 0) k = 0; if (k > 1) k = 1; double r, g, b; if (k < 0.25) { r = 0; g = 4 * k; b = 1; } else if (k < 0.5) { r = 0; g = 1; b = 1 - 4 * (k - 0.25); } else if (k < 0.75) { r = 4 * (k - 0.5); g = 1; b = 0; } else { r = 1; g = 1 - 4 * (k - 0.75); b = 0; } byte R = (byte)(r * 255); byte G = (byte)(g * 255); byte B = (byte)(b * 255); return Color.FromArgb(255, R, G, B); }
时间: 2024-02-10 21:33:03 浏览: 46
如何优雅的替换掉Java代码中的if else
5星 · 资源好评率100%
private static Color GetRainbowColor(double k)
{
k = Math.Max(0, Math.Min(1, k)); // 使用 Math.Max 和 Math.Min 函数确保 k 的值在 [0,1] 范围内
double r, g, b;
if (k < 0.25)
{
r = 0;
g = 4 * k;
b = 1;
}
else if (k < 0.5)
{
r = 0;
g = 1;
b = 1 - 4 * (k - 0.25);
}
else if (k < 0.75)
{
r = 4 * (k - 0.5);
g = 1;
b = 0;
}
else
{
r = 1;
g = 1 - 4 * (k - 0.75);
b = 0;
}
byte R = (byte)(r * 255);
byte G = (byte)(g * 255);
byte B = (byte)(b * 255);
return Color.FromArgb(255, R, G, B);
}
改进说明:
1. 使用 Math.Max 和 Math.Min 函数将 k 的值限制在 [0,1] 范围内,避免了非法的输入。
2. 删除了无用的 if 语句,简化了代码结构。
3. 使用了具有描述性的变量名,提高了代码的可读性。
阅读全文