Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - .NET

Страница: 1 | 2 |

 

  Вопрос: Градиент Добавлено: 14.05.05 20:22  

Автор вопроса:  gvozd | Web-сайт: www.gvozdsoft.com
Дайте, плз, простейший пример градиентной заливки пикчуребокса.

Ответить

  Ответы Всего ответов: 25  

Номер ответа: 1
Автор ответа:
 AgentFire



ICQ: 192496851 

Вопросов: 75
Ответов: 3178
 Профиль | | #1 Добавлено: 14.05.05 21:53
picture1.width=255
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-сайт: freeloader.folder-pro.net
 Профиль | | #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-сайт: freeloader.folder-pro.net
 Профиль | | #3
Добавлено: 15.05.05 07:21
Me соответственно замени на имя PictureBox'a

Ответить

Номер ответа: 4
Автор ответа:
 gvozd



Разработчик Offline Client

Вопросов: 164
Ответов: 1317


 Web-сайт: www.gvozdsoft.com
 Профиль | | #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-сайт: www.gvozdsoft.com
 Профиль | | #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 подскажет, в каком классе он берёт карандаши и как он конкретно рисует карандашами, и желательно подробней про то место, как регулируется нажим. Ведь от этого светлее или темнее будет цвет.
А если допустим нажать карандаш очень сильно, то он ведь может поломаться :( Можно ли этого избежать?

Ответить

Страница: 1 | 2 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам