Градиентная заливка с использованием маршрута |
Здравствуйте, гость ( Вход | Регистрация )
Градиентная заливка с использованием маршрута |
greh |
9.10.2010, 13:12
Сообщение
#1
|
Студент Группа: Участник Сообщений: 48 Регистрация: 23.11.2009 Пользователь №: 1252 Спасибо сказали: 0 раз(а) Репутация: 0 |
Вообщем нужно сделать заливку не линейным градиентом а "маршрутным" т.е. тот же линейный, только setColorAt не от 0 до 1 а в координатах. Допустим от 0 (x),10 (y) до 10,10 белый-красный, от 10,10 до 100,50 он красно чёрный, и т.д. На VS2010 это делается примерно так:
Раскрывающийся текст Создание кисти из маршрута: 1.Объявляем переменную класса System.Drawing.Drawing2D.PathGradientBrush. 2.Инициализируем при помощи конструктора new System.Drawing.Drawing2D.PathGradientBrush(path), где path – ранее созданный маршрут. 3.Для каждой точки маршрута, а также для центральной можно задать свой цвет. Для этого используется: P_Br.SurroundColors = new Color[3] { Color.Red, Color.Blue, Color.Green}; P_Br.CenterColor = Color.Yellow, где P_Br – объект класса System.Drawing.Drawing2D.PathGradientBrush, Количество цветов должно быть равным ранее объявленному количеству точек в маршруте. 4.Кисть можно использовать при рисования фигуры, сам маршрут (контур фигуры) также можно нарисовать при помощи Grp.DrawPath(Pens.Black, path); 5.Фигура не обязательно должна повторять маршрут (рисование при помощи Grp.FillPath(P_Br, path); ), а может быть больше либо меньше его по геометрическим размерам. Однако, если фигура превосходит размеры маршрута, то часть ее, выступающая за маршрут, не будет заполнена. Есть идеи? Кроме как сделать на VS это?)) |
|
|
Текстовая версия | Сейчас: 25.4.2024, 22:01 |