Страница: 1 | 2 |
Вопрос: Градиент
Добавлено: 14.05.05 20:22
Автор вопроса: gvozd | Web-сайт:
Дайте, плз, простейший пример градиентной заливки пикчуребокса.
Ответы
Всего ответов: 25
Номер ответа: 1
Автор ответа:
AgentFire
ICQ: 192496851
Вопросов: 75
Ответов: 3178
Профиль | | #1
Добавлено: 14.05.05 21:53
picture1.height=255
for i=1 to 255
picture1.line(0,i)-(255,i),rgb(0,0,i)
next
Номер ответа: 2
Автор ответа:
freeloader
ICQ: 50804884
Вопросов: 72
Ответов: 642
Web-сайт:
Профиль | | #2
Добавлено: 15.05.05 07:20
Dim lb As New Drawing2D.LinearGradientBrush(Me.DisplayRectangle, _
Color.Blue, Color.Red, Drawing2D.LinearGradientMode.ForwardDiagonal)
Dim g As Graphics = Me.CreateGraphics()
g.FillRectangle(lb, Me.DisplayRectangle)
lb.Dispose()
g.Dispose()
Номер ответа: 3
Автор ответа:
freeloader
ICQ: 50804884
Вопросов: 72
Ответов: 642
Web-сайт:
Профиль | | #3
Добавлено: 15.05.05 07:21
Me соответственно замени на имя PictureBox'a
Номер ответа: 4
Автор ответа:
gvozd
Разработчик Offline Client
Вопросов: 164
Ответов: 1317
Web-сайт:
Профиль | | #4
Добавлено: 15.05.05 09:36
freeloader
Ну и что? Ниче не рисует.
Номер ответа: 5
Автор ответа:
ViktorZ
ICQ: 271202919
Вопросов: 56
Ответов: 837
Профиль | | #5
Добавлено: 15.05.05 13:43
а карандаш в руки взял. Тебе код дали. Разберись а потом спрашивай.
Номер ответа: 6
Автор ответа:
gvozd
Разработчик Offline Client
Вопросов: 164
Ответов: 1317
Web-сайт:
Профиль | | #6
Добавлено: 15.05.05 14:59
Vik, какой карандаш?
Номер ответа: 7
Автор ответа:
Artyom
Разработчик
Вопросов: 130
Ответов: 6602
Профиль | | #7
Добавлено: 15.05.05 15:27
2 gvozd
Не пойму, в чем у тебя проблема???
Код, приведенный выше абсолютно правильный и рабочий...
PS Посмотри тем GDI vs GDI+ - там был еще и мой пример рисования градиента.
Номер ответа: 8
Автор ответа:
ViktorZ
ICQ: 271202919
Вопросов: 56
Ответов: 837
Профиль | | #8
Добавлено: 15.05.05 15:31
2 gvozd:которым тебе надо будет градиент нарисовать чтобы наглядно понять как это происходит.
Номер ответа: 9
Автор ответа:
HOOLIGAN
Вопросов: 0
Ответов: 1066
Профиль | | #9
Добавлено: 15.05.05 17:43
Хотел тоже попробовать нарисовать в .NET градиент, но ответы в теме немного запутали меня.
Vik
Каким карандашом надо рисовать? Ведь цветов у градиента должно быть два, а карандаш упоминался один Ты когда рисуешь используешь один карандаш или два?
Номер ответа: 10
Автор ответа:
Artyom
Разработчик
Вопросов: 130
Ответов: 6602
Профиль | | #10
Добавлено: 15.05.05 17:57
Вы что, ребята, причем здесь карандаши?
Заливка области выполняется кистью, а если нужено сделать градиентную
заливку, то нужна соответственно и градиентная кисть - градиентны кистей
несколько, они находятся в пространстве имен System.Drawing.Drawing2d.
Номер ответа: 11
Автор ответа:
HOOLIGAN
Вопросов: 0
Ответов: 1066
Профиль | | #11
Добавлено: 15.05.05 19:00
Что-то совсем запутали меня, один рисует карандашами, другой кистями
Кисти значит можно взять в пространстве System.Drawing.Drawing2d, а в каком пространстве брал свои карандаши Vik ?
А у freeloader вообще в коде нет карандашей и кистей, пульверизатором рисовал что ли?
Номер ответа: 12
Автор ответа:
Artyom
Разработчик
Вопросов: 130
Ответов: 6602
Профиль | | #12
Добавлено: 15.05.05 19:46
Официально заявляю: заливать какую-либо область (прямоугольник, круг, овал,
регион etc) нужно кистью (класс Brush)!
В MSDN упоминаются следующие классы, унаследованные от Brush:
System.Drawing.Drawing2D.HatchBrush
System.Drawing.Drawing2D.LinearGradientBrush
System.Drawing.Drawing2D.PathGradientBrush
System.Drawing.SolidBrush
System.Drawing.TextureBrush
Собственно, для рисования градиента тебя должны интерисовать
LinearGradientBrush или PathGradientBrush, в зависимости от того, нужен
тебе скучный линейный типа того, который в некторых программах установки,
или красота с десятком разны цветов...
Freeloader тоже, кстати, рисует кистью - вот этот кусочек кода:
Dim lb As New Drawing2D.LinearGradientBrush(Me.DisplayRectangle, _
Color.Blue, Color.Red, Drawing2D.LinearGradientMode.ForwardDiagonal)
Номер ответа: 13
Автор ответа:
ViktorZ
ICQ: 271202919
Вопросов: 56
Ответов: 837
Профиль | | #13
Добавлено: 15.05.05 19:47
Карандашом можно и одним нарисовать примитивный градиент. Нужно только нажим увеличивать/уменьшать. авообще градиент это вектор.
карандаш частный случай кисти
Номер ответа: 14
Автор ответа:
Artyom
Разработчик
Вопросов: 130
Ответов: 6602
Профиль | | #14
Добавлено: 15.05.05 19:59
Слушай, если делать нечего, пойди лучше на wasm.ru объясни, что такое
градиент и что такое карандаш или кисть (по крайней мере, там быстрее мозги
на место вправят), а здесь нести ерись не нужно и людей запутывать тоже не
нужно.
Номер ответа: 15
Автор ответа:
HOOLIGAN
Вопросов: 0
Ответов: 1066
Профиль | | #15
Добавлено: 15.05.05 20:01
Artyom спасибо большое, немного понятно стало, это я в коде проглядел слово LinearGradientBrush, значит freeloader рисует кистями.
А с карандашами не очень понятно. Видимо есть специальный класс карандашей. Может Vik подскажет, в каком классе он берёт карандаши и как он конкретно рисует карандашами, и желательно подробней про то место, как регулируется нажим. Ведь от этого светлее или темнее будет цвет.
А если допустим нажать карандаш очень сильно, то он ведь может поломаться Можно ли этого избежать?