Как сделать этот градиент цветовой генератор? - PullRequest
2 голосов
/ 12 июня 2009

Как я могу создать 16 цветов. мой стартовый цвет - красный, а мой конечный цвет - хаки. Мне нужно вставить 14 цветов. Но это похоже на градиент потока. Пример цвета. Черный не из красного. Жестокий должен прийти красный от красного.

1 Ответ

11 голосов
/ 12 июня 2009

Вы должны быть в состоянии интерполировать? Этот пример - winforms, но математика идентична - просто в ASP.NET вам нужно будет написать цвет в шестнадцатеричной форме. Вам также может (с ASP.NET) найти значения RGB отдельно, но для информации, хаки (в winforms) равен {240,230,140} (красный, очевидно, {255,0,0}).

using System.Drawing;
using System.Windows.Forms;

static class Program {
    static void Main()
    {
        Form form = new Form();
        Color start = Color.Red, end = Color.Khaki;
        for (int i = 0; i < 16; i++)
        {
            int r = Interpolate(start.R, end.R, 15, i),
                g = Interpolate(start.G, end.G, 15, i),
                b = Interpolate(start.B, end.B, 15, i);

            Button button = new Button();
            button.Dock = DockStyle.Top;
            button.BackColor = Color.FromArgb(r, g, b);
            form.Controls.Add(button);
            button.BringToFront();
        }

        Application.Run(form);
    }
    static int Interpolate(int start, int end, int steps, int count)
    {
        float s = start, e = end, final = s + (((e - s) / steps) * count);
        return (int)final;
    }    
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...