- optical illusion
The rectangles appear to be continuously moving out of the grid.
To
New
# set default screen, pen and turtle values
ResetAll SetScreenSize [400 400] HideTurtle
SetSC Black SetPC Green SetPS 1 PenUp
End
To
Gridd
:
M
:
N
# return X Y screen position
Make "
X
(
:
N
*
:
CellSize
) -180
Make "
Y
(
:
M
*
:
CellSize
) -180
Output List
:
X
:
Y
End
To
DrawGrid
# draw M x N array of squares
For (List "
M
5 1 Minus 1) [
For (List "
N
5 1 Minus 1) [
SetPos
Gridd
(
:
M
*
:
M
)/5 (
:
N
*
:
N
)/5
Rect
8*
:
M
8*
:
N
Left 90
SetXY Minus 1*First Pos Last Pos
Rect
8*
:
N
8*
:
M
Left 90
SetXY First Pos Minus 1*Last Pos
Rect
8*
:
M
8*
:
N
Left 90
SetXY Minus 1*First Pos Last Pos
Rect
8*
:
N
8*
:
M
Left 90 ] ]
End
To
Rect
:
Width
:
Height
# shaded rectangle (width x height) drawn from centre (tp) and filled
Back
:
Height
/2 Right 90 Back
:
Width
/2 PenDown
SetPC Black Forward
:
Width
Left 90 Forward
:
Height
Left 90
SetPC White Forward
:
Width
Left 90 Forward
:
Height
Left 90
PenUp Forward
:
Width
/2 Left 90 Forward
:
Height
/2
SetPC [153 0 204] Fill
End
To
Go
New
SetSC [51 204 102] SetPW 2
Left 90
# change to 270 to zoom in
Make "
CellSize
30
DrawGrid
End
Add the following code for rounded rectangles.
To
Rect
:
Width
:
Height
# shaded pebble shape drawn from centre (tp) and filled
LocalMake "
Diff
Abs
:
Width
-
:
Height
If
:
Width
>
:
Height
[LocalMake "
Rad
:
Height
/2 LocalMake "
Vert
0 LocalMake "
Horiz
:
Diff
]
[LocalMake "
Rad
:
Width
/2 LocalMake "
Vert
:
Diff
LocalMake "
Horiz
0]
PenUp Back
:
Height
/2 Right 90 Back
:
Horiz
/2 PenDown
SetPC Black Forward
:
Horiz
LeftArc
90
:
Rad
Forward
:
Vert
LeftArc
45
:
Rad
SetPC White
LeftArc
45
:
Rad
Forward
:
Horiz
LeftArc
90
:
Rad
Forward
:
Vert
LeftArc
45
:
Rad
SetPC Black
LeftArc
45
:
Rad
PenUp Forward
:
Horiz
/2 Left 90 Forward
:
Height
/2
# return to centre
SetPC [153 0 204] Fill
End
To
LeftArc
:
Angle
:
Radius
# arc drawn relative to turtle position, angle & radius positive
PenUp Right 90 Back
:
Radius
Left
:
Angle
Arc
:
Radius
Heading Heading+
:
Angle
Forward
:
Radius
Left 90 PenDown
End