- XLogo
Op art image creating some distortion and color bleeding behind the black and white marbles.
Two sets of grid tiles are drawn, background yellow and blue squares, and large foreground black & white dots (marbles).
Try other even Order values from 1 to 14...
To New
# set default screen, pen and turtle values
ResetAll SetScreenSize [400 400] HideTurtle
SetSC Black SetPC Green SetPS 1 PenUp
End
To GridSq :Order :Side
# draw tile at each column x row position
LocalMake "Offset (1+:Order)/2
For (List "Col 1 :Order) [
For (List "Row 1 :Order) [
SetXY :Side*(:Col-:Offset) :Side*(:Row-:Offset)
Tile :Col :Row :Side] ]
End
To Tile :Col :Row :Side
If Even? (:Col+:Row) [Make "Hue 0 SetH 0] [Make "Hue 7 SetH 90]
SetPC Blue
Forward :Side/4 Right 90 Back :Side/4 Square (:Side/2)-1 Fill
Forward :Side/2 Left 90 Back :Side/2 Square (:Side/2)-1 Fill
Forward :Side/4 Right 90 Back :Side/4 # return to centre
SetPC :Hue Circle (:Side/2)-1 FillZone
SetPC Abs (:Hue-7) Circle (:Side/2)-1 Wait 2
End
To Square :Side
# square (side x side) drawn from centre (tp)
Back :Side/2 Right 90 Back :Side/2 PenDown
Repeat 4 [
Forward :Side Left 90]
PenUp Forward :Side/2 Left 90 Forward :Side/2 # r2c
End
To Even? :Num
# return 'true' if Num even, else return 'false'
If (Mod :Num 2)=0 [Output "True] [Output "False]
End
To Go :Order
New SetSC White
Make "Side Int (370/:Order)
Make "Board :Order*:Side # whole number of squares
SetPC Yellow Square :Board Fill
SetPC Black Square :Board
GridSq :Order :Side
End