DiSe писал(а):To GSerg - У меня нет MSDN. Поэтому, если знаешь где скачать MSDN и если не трудно, то подскажи.
Sub Dither(vForm As Form)
Dim intLoop As Integer vForm.DrawStyle =
vbInsideSolid vForm.DrawMode = vbCopyPen vForm.ScaleMode =
vbPixels vForm.DrawWidth = 2 vForm.ScaleHeight = 256 For intLoop
= 0 To 255 vForm.Line (0, intLoop)-(Screen.Width, intLoop - 1), _
RGB(0, 0, 255 -intLoop), B Next intLoop
End Sub
Dither ME
Sub Dither(vForm As Form)
Dim intLoop As Integer
vForm.DrawStyle = vbInsideSolid
vForm.DrawMode = vbCopyPen
vForm.ScaleMode =
vbPixels vForm.DrawWidth = 2 vForm.ScaleHeight = 256
For intLoop = 0 To 255
vForm.Line (0, intLoop)-(Screen.Width, intLoop - 1), RGB(0, 0, 255 -intLoop), B
Next intLoop
End Sub
DiSe писал(а):Обычную заливку легко сделать с помощью FloodFill. Но как сделать градиентную заливку определённой ограниченной области, при этом разные стили градиентной заливки?
Fade(obj As Object, StartColour As Long, EndColor As Long, TopToBottom As Boolean)
' Object - объект кот. закрашиваем
' StartColour - нач. цвет
' EndColor - кон. цвет
' TopToBottom - true: вертикально, false: горизонтально
'пр:
Fade Picture1, vbBlack, vbWhite, True
vForm.Line (0, intLoop)-(Screen.Width, intLoop - 1), RGB(128 - intLoop \ 2, 128 - intLoop \ 2, 255 - intLoop \ 2), B
Line (0, intLoop)-(Screen.Width, intLoop - 1), RGB(intLoop \ 2, intLoop \ 2, 127 + intLoop \ 2), B
А где ты берешь эти коды?
Кроме того, неужели ж он сам придумал обратный слэш и цифру?
как идут цвета от темного (или насыщенного) к бледному?
Option Explicit
Private Sub Form_Load()
Dim n As Long
Dim Col1 As Long, Col2 As Long, Col As Long
Show
Col1 = RGB(128, 128, 255)
Col2 = RGB(0, 160, 128)
ScaleMode = vbPixels
For n = ScaleTop To ScaleTop + ScaleHeight - 1
Col = ColLerp(Col1, Col2, (n - ScaleTop) / (ScaleHeight - ScaleTop))
Line (ScaleLeft, n)-(ScaleLeft + ScaleWidth - 1, n), Col
Next n
End Sub
Private Function ColLerp(ByVal c1 As Long, ByVal c2 As Long, ByVal k As Single) As Long
Dim r As Integer, g As Integer, b As Integer
r = (c1 And 255&) * k + (c2 And 255&) * (1 - k)
g = ((c1 \ 256&) And 255&) * k + ((c2 \ 256&) And 255&) * (1 - k)
b = ((c1 \ 65536) And 255&) * k + ((c2 \ 65536) And 255&) * (1 - k)
ColLerp = RGB(r, g, b)
End Function
Сейчас этот форум просматривают: Yandex-бот и гости: 83