Есть ли способ нарисовать линию вдоль изогнутой траектории с градиентом, который изменяется в направлении, перпендикулярном направлению линии? Я использую рамки GDI + для своей графики.Полилиния с градиентом
ответ
Простой ответ: нет. Вы можете создать GraphicsPath, чтобы описать, что вы хотели бы сделать, используя AddPoint/AddLine/AddBezier и т. Д., Если необходимо, чтобы описать сложный путь того, что вы хотите нарисовать. Когда вы рисуете путь, вы можете предоставить кисть, которая может быть чем-то вроде LinearGradientBrush или RadialGradientBrush. Ни одна из этих градиентных кистей не реагирует на фактический путь, который рисуется в смысле изменения направления по мере наступления рисунка. Вы должны указывать углы и т. Д. Как постоянные для всей области градиента.
Один из возможных способов, который вы можете использовать, - установить область клипа объекта Graphics только для линии. Затем нарисуйте линейный градиент над крайностями линии, например.
GraphicsPath gp = new GraphicsPath();
gp.AddArc(); // etc...
graphics.SetClip(gp);
graphics.FillRectangle(myLinearGradientBrush, gp.GetBounds());
Вышеупомянутый код может предоставить вам то, что вы ищете.