62 lines
1.9 KiB
Plaintext
62 lines
1.9 KiB
Plaintext
Sub DrawRect(x0 As Integer, y0 As Integer, w As Integer, h As Integer, kolor As Integer)
|
|
For y As Integer = y0 To y0 + h - 1
|
|
Line (x0, y)-(x0 + w - 1, y), kolor
|
|
Next y
|
|
End Sub
|
|
|
|
Sub DrawEdge(px As Integer, py As Integer, colors() As Integer, edge As Integer)
|
|
Line (px, py)-(px + 22, py), colors(edge, 0)
|
|
Line (px + 22, py)-(px + 22, py + 22), colors(edge, 1)
|
|
Line (px + 22, py + 22)-(px, py + 22), colors(edge, 2)
|
|
Line (px, py + 22)-(px, py), colors(edge, 3)
|
|
End Sub
|
|
|
|
Const scrw = 512, scrh = 512
|
|
Const white = Rgb(255,255,255)
|
|
Const black = Rgb( 0, 0, 0)
|
|
Const lightolive = Rgb(211,208, 4)
|
|
Const paleblue = Rgb( 50, 80,255)
|
|
Dim As Integer x, y, px, py
|
|
Enum ' signifies the white edges on the blue squares
|
|
LT = 0
|
|
TR
|
|
RB
|
|
BL
|
|
End Enum
|
|
|
|
Screenres scrw, scrh, 24
|
|
Windowtitle("Peripheral drift illusion")
|
|
|
|
Dim edges(11, 11) As Byte = { _
|
|
{LT, BL, BL, RB, RB, TR, TR, LT, LT, BL, BL, RB}, _
|
|
{LT, LT, BL, BL, RB, RB, TR, TR, LT, LT, BL, BL}, _
|
|
{TR, LT, LT, BL, BL, RB, RB, TR, TR, LT, LT, BL}, _
|
|
{TR, TR, LT, LT, BL, BL, RB, RB, TR, TR, LT, LT}, _
|
|
{RB, TR, TR, LT, LT, BL, BL, RB, RB, TR, TR, LT}, _
|
|
{RB, RB, TR, TR, LT, LT, BL, BL, RB, RB, TR, TR}, _
|
|
{BL, RB, RB, TR, TR, LT, LT, BL, BL, RB, RB, TR}, _
|
|
{BL, BL, RB, RB, TR, TR, LT, LT, BL, BL, RB, RB}, _
|
|
{LT, BL, BL, RB, RB, TR, TR, LT, LT, BL, BL, RB}, _
|
|
{LT, LT, BL, BL, RB, RB, TR, TR, LT, LT, BL, BL}, _
|
|
{TR, LT, LT, BL, BL, RB, RB, TR, TR, LT, LT, BL}, _
|
|
{TR, TR, LT, LT, BL, BL, RB, RB, TR, TR, LT, LT} }
|
|
|
|
Dim colors(3, 3) As integer = { _
|
|
{white, black, black, white}, _
|
|
{white, white, black, black}, _
|
|
{black, white, white, black}, _
|
|
{black, black, white, white} }
|
|
|
|
DrawRect(0, 0, scrw, scrh, lightolive)
|
|
|
|
For x = 0 To 11
|
|
px = 54 + x * 34
|
|
For y = 0 To 11
|
|
py = 54 + y * 34
|
|
DrawRect(px, py, 24, 24, paleblue)
|
|
DrawEdge(px, py, colors(), edges(y, x))
|
|
Next y
|
|
Next x
|
|
|
|
Sleep
|