module2.bas
来自「小波分形算法源代码,写的不错,希望能给大家帮助!」· BAS 代码 · 共 64 行
BAS
64 行
Attribute VB_Name = "Sub"
Option Explicit
'由(x0,y0)计算下一点(x1,y1)的坐标
Public Sub NextP(ByVal x0 As Double, ByVal y0 As Double, _
ByRef x1 As Double, ByRef y1 As Double)
Dim T As Double, i As Long
Dim x As Double, y As Double
T = Rnd(1) '产生一个0~1之间的随机数
For i = 0 To 10 '共11个方程
If T <= P(i) Then
x = A(i) * x0 + B(i) * y0 + E(i)
y = C(i) * x0 + D(i) * y0 + F(i)
Exit For
End If
Next i
x1 = x
y1 = y
End Sub
Public Sub HuaDian(ByVal A As Long, ByVal B As Long, _
ByVal Pxy As Long, _
ByVal x0 As Double, ByVal y0 As Double, _
ByVal x1 As Double, ByVal y1 As Double)
'绘制出好看的颜色
Dim Se As Long, i As Long, k As Long
If HowHua = 4 Or HowHua = 1 Or HowHua = 2 Then
If PxyT(A, B) = True Then
Exit Sub
Else
PxyT(A, B) = True
End If
End If
If Pn = 0 Then Pn = 2#
Select Case HowHua
Case 1
Se = FormM.PictureT.ForeColor
Case 2
Se = RGB(Rnd * 256, Rnd * 256, Rnd * 256)
Case 3
Se = RGB(256 - Abs(Abs(Se1 - (2 * Se2 - 256) * Pxy * Pn / 10) Mod 512 - 256), _
256 - Abs(Abs(Se2 - (2 * Se3 - 256) * Pxy * Pn / 10) Mod 512 - 256), _
256 - Abs(Abs(Se3 - (2 * Se1 - 256) * Pxy * Pn / 10) Mod 512 - 256))
Case 4
Se = RGB(256 - Abs(Abs(Se1 - (2 * Se2 - 256) * Abs(x1 - x0) * Pn / 10) Mod 512 - 256), _
256 - Abs(Abs(Se2 - (2 * Se3 - 256) * Abs(y1 - y0) * Pn / 10) Mod 512 - 256), _
256 - Abs(Abs(Se3 - (2 * Se1 - 256) * (Abs(x1 - x0) + Abs(y1 - y0)) * Pn / 20) Mod 512 - 256))
End Select
SetPixelV FormM.PictureT.hdc, A, B, Se
End Sub
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?