Рисование полигональной линии с градиентом в GDI + - PullRequest
2 голосов
/ 28 июня 2010

У меня есть List<Point> из нескольких точек.Как я могу нарисовать эти точки в растровом изображении, чтобы получить так же, как это:

http://img291.imageshack.us/img291/4462/outputtz.png

Точки известны, мне просто нужно как-то добиться этого эффекта градиента.

Обратите внимание, что градиент не радиальный, если вы раскрутите многоугольную линию в прямую, вы получите простой линейный градиент от одного конца к другому.Мне просто нужен этот линейный градиент, скрученный вдоль «точек разрыва» линии.

Мое текущее решение - рисовать каждую линию отдельно, вычисляя при этом начальный цвет и конечный цвет для каждой строки, поэтому я могу использовать LinearGradientBrush, а затем DrawLine.


1) Есть ли какое-либо иное решение, кроме расчета цветовсебя?

2) Как нарисовать линию с круглыми концами (как на картинке)?Мое решение состоит в том, чтобы нарисовать обычную линию с эллипсом на каждом конце, но у этих эллипсов не будет градиента, поэтому, если линия ОЧЕНЬ короткая, градиента нет.

1 Ответ

1 голос
/ 31 мая 2011

О закругленных концах вы можете установить это свойство для вас Ручка

    Graphics g = e.Graphics;
    Pen p = new Pen(Color.Brown, 15);

    // round ends
    p.StartCap = LineCap.Round;
    p.EndCap = LineCap.Round;
    g.DrawLine(p, 30, 80, Width - 50, 80);//can be replace with you code

, поэтому на вашем изображении вы можете изменить холст перо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...