- Зеленый 0-15 (LowLands)
- Пшеничный Желтый 16–30 (Средние Земли)
- Коричневый 31–40 (Высокие Земли)
- Белоснежный 41–50 (Горные Вершины) >
Код: Выделить всё
public static Color[] GetColorShades(Color baseColor, int shadesCount)
{
shadesCount *= 2;
Color[] output = new Color[shadesCount];
for (int index = 0; index < shadesCount; index++)
{
output[index] = DarkenColor(baseColor, (double)index / (double)shadesCount);
}
return output;
}
private static Color DarkenColor(Color color, double fraction)
{
int red = (int)Math.Round(Math.Max(0, color.R - 255 * fraction));
int green = (int)Math.Round(Math.Max(0, color.G - 255 * fraction));
int blue = (int)Math.Round(Math.Max(0, color.B - 255 * fraction));
return Color.FromArgb(red, green, blue);
}
Может ли кто-нибудь помочь мне с алгоритмом, который разделит число, определяющее максимальную высоту, на четыре группы, каждая из которых имеет оттенки определенного цвета? Для вдохновения см. изображение.
Вот как это работает со строго определенными шестнадцатеричными цветовыми кодами:

Вот что я получаю, когда применяю приведенный выше алгоритм:

Подробнее здесь: https://stackoverflow.com/questions/786 ... -elevation