Нарисуйте кривую с резко очерченными цветами в C#
Сообщение показывает, как вы можете рисовать кривую, которая постепенно меняется от одного цвета к другому, когда меняются координаты Y кривой. Однако вы не всегда можете постепенно менять цвета. В этом примере цвета резко меняются.
Смотрите для базовый подход. Единственное отличие состоит в том, что этот пример дает свой LinearGradientBrush другой набор цветов.
В предыдущем примере кисть задала цвета в разных точках вдоль градиента. Кисть автоматически интерполируется, чтобы сочетать цвета.
Этот пример определяет две цветовые позиции в градиенте для каждого цвета. Затем кисть должна сохранять цвет одинаковым между двумя экземплярами одного цвета. Например, кисть красного цвета в положении 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 и назначает его цвета и позиции цветов. Обратите внимание, что каждый цвет отображается дважды, а соседние цвета имеют одинаковые позиции.
