Страница: 1 |
Страница: 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-сайт:
Профиль | | #3
Добавлено: 07.06.06 14:18
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
Я программированием не занимался три месяца. Как я проект защищать буду - не знаю...
Блин, народ, вам спасибо большое, но у меня одна трабла. У мя ща среда не стоит и проверить никак. И поставить среду никак. Еси не в лом, можете компильнуть и на мыло кинуть? Интересно глянуть. Но еси в ломак, мне не обязательно. Интересно просто. Спасибо еще раз.
Номер ответа: 5
Автор ответа:
Victor
ICQ: 345743490
Вопросов: 42
Ответов: 385
Web-сайт:
Профиль | | #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
Супер! Еще рас огромное спасибо!