If (Red < (rr / 4) + 5 And Green < (rg / 4) + 5 And Blue < (rb / 4) + 5) And (.Point(X - rzd, Y) = 0 Or .Point(X + rzd, Y) = 0 Or .Point(X, Y - rzd) = 0 Or .Point(X, Y + rzd) = 0) Then
X2 = (X + (rzl / rxy) - rzl) * sc + X1
Y2 = (Y + rzl) * sc + Y1
X1 = (X - (rzl / rxy)) * sc + X1
Y1 = (Y - rzl) * sc + Y1
za = za + 1
GoTo finish
End If
If (Red < (rr / 3) + 5 And Green < (rg / 3) + 5 And Blue < (rb / 3) + 5 And ln > 10000) And (.Point(X - rzd, Y) = 0 Or .Point(X + rzd, Y) = 0 Or .Point(X, Y - rzd) = 0 Or .Point(X, Y + rzd) = 0) Then
X2 = (X + (rzl / rxy) - rzl) * sc + X1
Y2 = (Y + rzl) * sc + Y1
X1 = (X - (rzl / rxy)) * sc + X1
Y1 = (Y - rzl) * sc + Y1
za = za + 1
GoTo finish
End If
If (Red < (rr / 2) + 5 And Green < (rg / 2) + 5 And Blue < (rb / 2) + 5 And ln > 20000) And (.Point(X - rzd, Y) = 0 Or .Point(X + rzd, Y) = 0 Or .Point(X, Y - rzd) = 0 Or .Point(X, Y + rzd) = 0) Then
X2 = (X + (rzl / rxy) - rzl) * sc + X1
Y2 = (Y + rzl) * sc + Y1
X1 = (X - (rzl / rxy)) * sc + X1
Y1 = (Y - rzl) * sc + Y1
za = za + 1
GoTo finish
End If
Else
If (Red < 10 And Green >= 254 And Blue >= 254 And theme = 0) And (.Point(X - rzd, Y) = 0 Or .Point(X + rzd, Y) = 0 Or .Point(X, Y - rzd) = 0 Or .Point(X, Y + rzd) = 0) Then
X2 = (X + (rzl / rxy) - rzl) * sc + X1
Y2 = (Y + rzl) * sc + Y1
X1 = (X - (rzl / rxy)) * sc + X1
Y1 = (Y - rzl) * sc + Y1
za = za + 1
GoTo finish
End If
If theme = 1 Then
If (Red > 0 And Blue = 0 And Green <= 255) And (.Point(X - rzd, Y) = 0 Or .Point(X + rzd, Y) = 0 Or .Point(X, Y - rzd) = 0 Or .Point(X, Y + rzd) = 0) Then
X2 = (X + (rzl / rxy) - rzl) * sc + X1
Y2 = (Y + rzl) * sc + Y1
X1 = (X - (rzl / rxy)) * sc + X1
Y1 = (Y - rzl) * sc + Y1
za = za + 1
GoTo finish
End If
If (Red = 0 And Blue < 64 And Green > 0 And Green <= 255 And ln > 10000) And (.Point(X - rzd, Y) = 0 Or .Point(X + rzd, Y) = 0 Or .Point(X, Y - rzd) = 0 Or .Point(X, Y + rzd) = 0) Then
X2 = (X + (rzl / rxy) - rzl) * sc + X1
Y2 = (Y + rzl) * sc + Y1
X1 = (X - (rzl / rxy)) * sc + X1
Y1 = (Y - rzl) * sc + Y1
za = za + 1
GoTo finish
End If
If (Red = 0 And Blue < 128 And Green > 0 And Green <= 255 And ln > 20000) And (.Point(X - rzd, Y) = 0 Or .Point(X + rzd, Y) = 0 Or .Point(X, Y - rzd) = 0 Or .Point(X, Y + rzd) = 0) Then
X2 = (X + (rzl / rxy) - rzl) * sc + X1
Y2 = (Y + rzl) * sc + Y1
X1 = (X - (rzl / rxy)) * sc + X1
Y1 = (Y - rzl) * sc + Y1
za = za + 1
GoTo finish
End If
End If
If theme = 2 Then
If (Green > 0 And Red = 0 And Blue <= 255) And (Form1.Point(X - rzd, Y) = 0 Or .Point(X + rzd, Y) = 0 Or .Point(X, Y - rzd) = 0 Or .Point(X, Y + rzd) = 0) Then
X2 = (X + (rzl / rxy) - rzl) * sc + X1
Y2 = (Y + rzl) * sc + Y1
X1 = (X - (rzl / rxy)) * sc + X1
Y1 = (Y - rzl) * sc + Y1
za = za + 1
GoTo finish
End If
If (Green = 0 And Red < 64 And Blue > 0 And Blue <= 255 And ln > 10000) And (.Point(X - rzd, Y) = 0 Or .Point(X + rzd, Y) = 0 Or .Point(X, Y - rzd) = 0 Or .Point(X, Y + rzd) = 0) Then
X2 = (X + (rzl / rxy) - rzl) * sc + X1
Y2 = (Y + rzl) * sc + Y1
X1 = (X - (rzl / rxy)) * sc + X1
Y1 = (Y - rzl) * sc + Y1
za = za + 1
GoTo finish
End If
If (Green = 0 And Red < 128 And Blue > 0 And Blue <= 255 And ln > 20000) And (.Point(X - rzd, Y) = 0 Or .Point(X + rzd, Y) = 0 Or .Point(X, Y - rzd) = 0 Or .Point(X, Y + rzd) = 0) Then
X2 = (X + (rzl / rxy) - rzl) * sc + X1
Y2 = (Y + rzl) * sc + Y1
X1 = (X - (rzl / rxy)) * sc + X1
Y1 = (Y - rzl) * sc + Y1
za = za + 1
GoTo finish
End If
End If
If theme = 3 Then
If (Blue > 0 And Green = 0 And Red <= 255) And (.Point(X - rzd, Y) = 0 Or .Point(X + rzd, Y) = 0 Or .Point(X, Y - rzd) = 0 Or .Point(X, Y + rzd) = 0) Then
X2 = (X + (rzl / rxy) - rzl) * sc + X1
Y2 = (Y + rzl) * sc + Y1
X1 = (X - (rzl / rxy)) * sc + X1
Y1 = (Y - rzl) * sc + Y1
za = za + 1
GoTo finish
End If
If (Blue = 0 And Green < 64 And Red > 0 And Red <= 255 And ln > 10000) And (.Point(X - rzd, Y) = 0 Or .Point(X + rzd, Y) = 0 Or .Point(X, Y - rzd) = 0 Or .Point(X, Y + rzd) = 0) Then
X2 = (X + (rzl / rxy) - rzl) * sc + X1
Y2 = (Y + rzl) * sc + Y1
X1 = (X - (rzl / rxy)) * sc + X1
Y1 = (Y - rzl) * sc + Y1
za = za + 1
GoTo finish
End If
If (Blue = 0 And Green < 128 And Red > 0 And Red <= 255 And ln > 20000) And (.Point(X - rzd, Y) = 0 Or .Point(X + rzd, Y) = 0 Or .Point(X, Y - rzd) = 0 Or .Point(X, Y + rzd) = 0) Then
X2 = (X + (rzl / rxy) - rzl) * sc + X1
Y2 = (Y + rzl) * sc + Y1
X1 = (X - (rzl / rxy)) * sc + X1
Y1 = (Y - rzl) * sc + Y1
za = za + 1
GoTo finish
End If
End If
End If
End If
ln = ln + 1
If ln > 30000 Then DoEvents
Loop Until ln = 30000
DoEvents
Loop Until X1 <> -2 Or X2 <> 1
End With
X1 = -2
Y1 = -1.5
X2 = 1
Y2 = 1.5
za = 0
firstimages = False
finish:
If ln <> 30000 And (hr <> 0 Or hg <> 0 Or hb <> 0) Then Display.Line (X - (rzl / rxy) - 15, Y - rzl - 15)-(X + (rzl / rxy) + 15, Y + rzl + 15), RGB(hr, hg, hb), B
Else
'||| ZOOM SKIP |||
'vvv ZOOM SKIP vvv
DoEvents
rxy = Form1.Height / Form1.Width
With mem
Do
ln = 0
Do
X = Int(Rnd * Form1.Width)
Y = Int(Rnd * Form1.Height)
Blue = Int(.Point(X, Y) / 65536)
Green = Int((.Point(X, Y) - (Blue * 65536)) / 256)
If (Red < (rr / 4) + 5 And Green < (rg / 4) + 5 And Blue < (rb / 4) + 5) And (.Point(X - rzd, Y) = 0 Or .Point(X + rzd, Y) = 0 Or .Point(X, Y - rzd) = 0 Or .Point(X, Y + rzd) = 0) Then
X2 = (X + (rzl / rxy) - rzl) * sc + X1
Y2 = (Y + rzl) * sc + Y1
X1 = (X - (rzl / rxy)) * sc + X1
Y1 = (Y - rzl) * sc + Y1
za = za + 1
GoTo finish2
End If
If (Red < (rr / 3) + 5 And Green < (rg / 3) + 5 And Blue < (rb / 3) + 5 And ln > 10000) And (.Point(X - rzd, Y) = 0 Or .Point(X + rzd, Y) = 0 Or .Point(X, Y - rzd) = 0 Or .Point(X, Y + rzd) = 0) Then
X2 = (X + (rzl / rxy) - rzl) * sc + X1
Y2 = (Y + rzl) * sc + Y1
X1 = (X - (rzl / rxy)) * sc + X1
Y1 = (Y - rzl) * sc + Y1
za = za + 1
GoTo finish2
End If
If (Red < (rr / 2) + 5 And Green < (rg / 2) + 5 And Blue < (rb / 2) + 5 And ln > 20000) And (.Point(X - rzd, Y) = 0 Or .Point(X + rzd, Y) = 0 Or .Point(X, Y - rzd) = 0 Or .Point(X, Y + rzd) = 0) Then
X2 = (X + (rzl / rxy) - rzl) * sc + X1
Y2 = (Y + rzl) * sc + Y1
X1 = (X - (rzl / rxy)) * sc + X1
Y1 = (Y - rzl) * sc + Y1
za = za + 1
GoTo finish2
End If
Else
If (Red < 10 And Green >= 254 And Blue >= 254 And theme = 0) And (.Point(X - rzd, Y) = 0 Or .Point(X + rzd, Y) = 0 Or .Point(X, Y - rzd) = 0 Or .Point(X, Y + rzd) = 0) Then
X2 = (X + (rzl / rxy) - rzl) * sc + X1
Y2 = (Y + rzl) * sc + Y1
X1 = (X - (rzl / rxy)) * sc + X1
Y1 = (Y - rzl) * sc + Y1
za = za + 1
GoTo finish2
End If
If theme = 1 Then
If (Red > 0 And Blue = 0 And Green <= 255) And (.Point(X - rzd, Y) = 0 Or .Point(X + rzd, Y) = 0 Or .Point(X, Y - rzd) = 0 Or .Point(X, Y + rzd) = 0) Then
X2 = (X + (rzl / rxy) - rzl) * sc + X1
Y2 = (Y + rzl) * sc + Y1
X1 = (X - (rzl / rxy)) * sc + X1
Y1 = (Y - rzl) * sc + Y1
za = za + 1
GoTo finish2
End If
If (Red = 0 And Blue < 64 And Green > 0 And Green <= 255 And ln > 10000) And (.Point(X - rzd, Y) = 0 Or .Point(X + rzd, Y) = 0 Or .Point(X, Y - rzd) = 0 Or .Point(X, Y + rzd) = 0) Then
X2 = (X + (rzl / rxy) - rzl) * sc + X1
Y2 = (Y + rzl) * sc + Y1
X1 = (X - (rzl / rxy)) * sc + X1
Y1 = (Y - rzl) * sc + Y1
za = za + 1
GoTo finish2
End If
If (Red = 0 And Blue < 128 And Green > 0 And Green <= 255 And ln > 20000) And (.Point(X - rzd, Y) = 0 Or .Point(X + rzd, Y) = 0 Or .Point(X, Y - rzd) = 0 Or .Point(X, Y + rzd) = 0) Then
X2 = (X + (rzl / rxy) - rzl) * sc + X1
Y2 = (Y + rzl) * sc + Y1
X1 = (X - (rzl / rxy)) * sc + X1
Y1 = (Y - rzl) * sc + Y1
za = za + 1
GoTo finish2
End If
End If
If theme = 2 Then
If (Green > 0 And Red = 0 And Blue <= 255) And (Form1.Point(X - rzd, Y) = 0 Or .Point(X + rzd, Y) = 0 Or .Point(X, Y - rzd) = 0 Or .Point(X, Y + rzd) = 0) Then
X2 = (X + (rzl / rxy) - rzl) * sc + X1
Y2 = (Y + rzl) * sc + Y1
X1 = (X - (rzl / rxy)) * sc + X1
Y1 = (Y - rzl) * sc + Y1
GoTo finish2
End If
If (Green = 0 And Red < 64 And Blue > 0 And Blue <= 255 And ln > 10000) And (.Point(X - rzd, Y) = 0 Or .Point(X + rzd, Y) = 0 Or .Point(X, Y - rzd) = 0 Or .Point(X, Y + rzd) = 0) Then
X2 = (X + (rzl / rxy) - rzl) * sc + X1
Y2 = (Y + rzl) * sc + Y1
X1 = (X - (rzl / rxy)) * sc + X1
Y1 = (Y - rzl) * sc + Y1
za = za + 1
GoTo finish2
End If
If (Green = 0 And Red < 128 And Blue > 0 And Blue <= 255 And ln > 20000) And (.Point(X - rzd, Y) = 0 Or .Point(X + rzd, Y) = 0 Or .Point(X, Y - rzd) = 0 Or .Point(X, Y + rzd) = 0) Then
X2 = (X + (rzl / rxy) - rzl) * sc + X1
Y2 = (Y + rzl) * sc + Y1
X1 = (X - (rzl / rxy)) * sc + X1
Y1 = (Y - rzl) * sc + Y1
za = za + 1
GoTo finish2
End If
End If
If theme = 3 Then
If (Blue > 0 And Green = 0 And Red <= 255) And (.Point(X - rzd, Y) = 0 Or .Point(X + rzd, Y) = 0 Or .Point(X, Y - rzd) = 0 Or .Point(X, Y + rzd) = 0) Then
X2 = (X + (rzl / rxy) - rzl) * sc + X1
Y2 = (Y + rzl) * sc + Y1
X1 = (X - (rzl / rxy)) * sc + X1
Y1 = (Y - rzl) * sc + Y1
za = za + 1
GoTo finish2
End If
If (Blue = 0 And Green < 64 And Red > 0 And Red <= 255 And ln > 10000) And (.Point(X - rzd, Y) = 0 Or .Point(X + rzd, Y) = 0 Or .Point(X, Y - rzd) = 0 Or .Point(X, Y + rzd) = 0) Then
X2 = (X + (rzl / rxy) - rzl) * sc + X1
Y2 = (Y + rzl) * sc + Y1
X1 = (X - (rzl / rxy)) * sc + X1
Y1 = (Y - rzl) * sc + Y1
za = za + 1
GoTo finish2
End If
If (Blue = 0 And Green < 128 And Red > 0 And Red <= 255 And ln > 20000) And (.Point(X - rzd, Y) = 0 Or .Point(X + rzd, Y) = 0 Or .Point(X, Y - rzd) = 0 Or .Point(X, Y + rzd) = 0) Then