Нарисуйте кривую с более четко очерченными цветами в C#

В сообщении Нарисуйте кривую с резким оговоренные цвета в C# . Я упомянул, что вы можете достичь еще более резких цветов, если используете TextureBrush. Естественно, я не мог позволить его сбросить, вот пример, который делает именно это. Следующий код показывает, как программа создает свою кисть и рисует кривую.

// Сделайте изображение для кисти.
using (Bitmap bm = new Bitmap(100, 100))
{
    using (Graphics gr = Graphics.FromImage(bm))
    {
        gr.Clear(Color.White);
        gr.FillRectangle(Brushes.Red, 0, 80, 100, 20);
        gr.FillRectangle(Brushes.Orange, 0, 60, 100, 20);
        gr.FillRectangle(Brushes.Yellow, 0, 40, 100, 20);
        gr.FillRectangle(Brushes.Green, 0, 20, 100, 20);
        gr.FillRectangle(Brushes.Blue, 0, 0, 100, 20);
    }

    // Создаем кисть из изображения.
    using (TextureBrush brush = new TextureBrush(bm))
    {
        // Создаем толстую ручку, определяемую кистью.
        using (Pen pen = new Pen(brush, 3))
        {
            pen.LineJoin = LineJoin.Bevel;

            // Рисуем кривую.
            Random rand = new Random();
            if (chkCurved.Checked)
                e.Graphics.DrawCurve(pen, Points);
            else
                e.Graphics.DrawLines(pen, Points);
        }
    }
}

Код делает Bitmap достаточно большим, чтобы заполнить координаты чертежа. Он создает объект Graphics и использует его для окраски Bitmap с горизонтальными полосами цвета.

Затем код создает TextureBrush, который использует Bitmap. Затем он рисует кривую, как в предыдущих примерах.

Источник: http://csharphelper.com/blog/2016/02/draw-a-curve-with-more-sharply-delineated-colors-in-c/

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (Пока оценок нет)
Adblock
detector