Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: Градиент Добавлено: 07.06.06 10:21  

Автор вопроса:  Tamplier | ICQ: 298742928 
Давно задумался над вопросом, тока вот ща вспонил его :)
Чтобы сделать градиент из одного цвета в другой? Найти разницу м/у r, g и b и плавно из изменять? Или как-то подругому?

Ответить

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

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



Вопросов: 0
Ответов: 1066
 Профиль | | #1 Добавлено: 07.06.06 10:32
GradienrFillRect

Ответить

Номер ответа: 2
Автор ответа:
 Fever



Вопросов: 60
Ответов: 808
 Профиль | | #2 Добавлено: 07.06.06 12:02
Tamplier, ты чего?
Короче хелпа у тебя на мыле...

Ответить

Номер ответа: 3
Автор ответа:
 [root]



Вопросов: 45
Ответов: 1212
 Web-сайт: bit.pirit.info
 Профиль | | #3
Добавлено: 07.06.06 14:18
Dim x0 As Single
Dim Picx() As Single
Dim R As Byte, G As Byte, B As Byte
Dim k As Single

Private Sub Form_Load()
ReDim Picx(2)
k = 255 / (Picture1(1).ScaleWidth - 1)
End Sub

Private Sub MovePic(ByVal Index As Integer)
Picture1(Index).Line (Picx(Index) + 0, 0)-(Picx(Index) + 4, Picture1(Index).ScaleHeight - 1), , B
Picture1(Index).Line (Picx(Index) + 1, 1)-(Picx(Index) + 3, Picture1(Index).ScaleHeight - 2), RGB(150, 150, 150), BF
End Sub

Private Sub Picture1_MouseDown(Index As Integer, Button As Integer, Shift As Integer, x As Single, y As Single)
If x < Picx(Index) Or x > Picx(Index) + 5 Then
Picx(Index) = x - 2
If Picx(Index) < 0 Then Picx(Index) = 0
If Picx(Index) > Picture1(Index).ScaleWidth - 5 Then Picx(Index) = Picture1(Index).ScaleWidth - 5
Picture1_Paint Index
End If
x0 = x - Picx(Index)
End Sub

Private Sub Picture1_MouseMove(Index As Integer, Button As Integer, Shift As Integer, x As Single, y As Single)
Dim i As Integer
If Button = 1 Then
Picx(Index) = x - x0
If Picx(Index) < 0 Then Picx(Index) = 0
If Picx(Index) > Picture1(Index).ScaleWidth - 5 Then Picx(Index) = Picture1(Index).ScaleWidth - 5
Select Case Index
Case 0
R = Picx(Index) * k
Case 1
G = Picx(Index) * k
Case 2
B = Picx(Index) * k
End Select
For i = 0 To 2
Picture1_Paint i
Next
Picture2_Paint
End If
End Sub

Private Sub Picture1_Paint(Index As Integer)
For i = 0 To Picture1(1).ScaleWidth - 1
If i < Picx(Index) Or i > Picx(Index) + 4 Then
Select Case Index
Case 0
Picture1(0).Line (i, 0)-(i, Picture1(0).ScaleHeight), RGB(i * k, G, B)
Case 1
Picture1(1).Line (i, 0)-(i, Picture1(1).ScaleHeight), RGB(R, i * k, B)
Case 2
Picture1(2).Line (i, 0)-(i, Picture1(2).ScaleHeight), RGB(R, G, i * k)
End Select
End If
Next
MovePic Index
End Sub

Private Sub Picture2_Paint()
Picture2.BackColor = RGB(R, G, B)
End Sub

Ответить

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



ICQ: 298742928 

Вопросов: 58
Ответов: 340
 Профиль | | #4 Добавлено: 07.06.06 17:32
Tamplier, ты чего?

Я программированием не занимался три месяца. Как я проект защищать буду - не знаю...

Блин, народ, вам спасибо большое, но у меня одна трабла. У мя ща среда не стоит и проверить никак. И поставить среду никак. Еси не в лом, можете компильнуть и на мыло кинуть? Интересно глянуть. Но еси в ломак, мне не обязательно. Интересно просто. Спасибо еще раз.

Ответить

Номер ответа: 5
Автор ответа:
 Victor



ICQ: 345743490 

Вопросов: 42
Ответов: 385
 Web-сайт: vt-dbnz.narod.ru
 Профиль | | #5
Добавлено: 07.06.06 17:37
Откомпилил, отправил.

Ответить

Номер ответа: 6
Автор ответа:
 Tamplier



ICQ: 298742928 

Вопросов: 58
Ответов: 340
 Профиль | | #6 Добавлено: 07.06.06 17:49
Басиба :)

Ответить

Номер ответа: 7
Автор ответа:
 Tamplier



ICQ: 298742928 

Вопросов: 58
Ответов: 340
 Профиль | | #7 Добавлено: 07.06.06 17:52
Супер! Еще рас огромное спасибо!

Ответить

Страница: 1 |

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



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