Нарисуйте кривую с резко очерченными цветами в C#
Сообщение показывает, как вы можете рисовать кривую, которая постепенно меняется от одного цвета к другому, когда меняются координаты Y кривой. Однако вы не всегда можете постепенно менять цвета. В этом примере цвета резко меняются.
Смотрите для базовый подход. Единственное отличие состоит в том, что этот пример дает свой LinearGradientBrush другой набор цветов.
 В предыдущем примере кисть задала цвета в разных точках вдоль градиента. Кисть автоматически интерполируется, чтобы сочетать цвета. 
 ![[colors]](http://www.csharphelper.com/howto_colored_curves2_1.png) 
 
Этот пример определяет две цветовые позиции в градиенте для каждого цвета. Затем кисть должна сохранять цвет одинаковым между двумя экземплярами одного цвета. Например, кисть красного цвета в положении 0,0 и 0,2, поэтому она также должна быть красной. Это эффективно закрепляет цвета в кисти. 
На рисунке 1 показаны градиенты цвета, используемые в предыдущем примере (вверху) и этом примере (внизу).
Следующий код показывает, как этот пример определяет его кисть.
// Создаем кисть для кривой.
using (LinearGradientBrush brush =
    new LinearGradientBrush(world_rect,
        Color.Red, Color.Blue, 270))
{
    ColorBlend blend = new ColorBlend();
    blend.Colors = new Color[]
    {
        Color.Red, Color.Red,
        Color.Orange, Color.Orange,
        Color.Yellow, Color.Yellow,
        Color.Green, Color.Green,
        Color.Blue, Color.Blue,
    };
    blend.Positions =
        new float[]
        {
            0.0f, 0.2f,
            0.2f, 0.4f,
            0.4f, 0.6f, 
            0.6f, 0.8f,
            0.8f, 1.0f,
        };
    brush.InterpolationColors = blend;
    ...
}
Код создает кисть, как раньше. Затем он создает ColorBlend и назначает его цвета и позиции цветов. Обратите внимание, что каждый цвет отображается дважды, а соседние цвета имеют одинаковые позиции.

 
																							 
																							