## Escher's Circle Limit III
## Instructions:
## load this;
## load Escher's Circle Limit III in the texture mode;
## "scale/rotate the texture" until centers of octagons coincide with center of Escher's squares;
## you may "select master triangles" and pick triangles closer to the center;
## enable the texture

h2.
angleunit(2*pi/3)
distunit(edge(8,3))

unittile(1,1,1,1,1,1,1,1) # YG
unittile(1,1,1,1,1,1,1,1) # YB
unittile(1,1,1,1,1,1,1,1) # YR
unittile(1,1,1,1,1,1,1,1) # RG
unittile(1,1,1,1,1,1,1,1) # RB
unittile(1,1,1,1,1,1,1,1) # GB

c(0,0,3,1,0)
c(0,1,5,2,0)
c(0,2,1,3,0)
c(0,3,2,2,0)
c(1,0,5,1,0)
c(1,1,4,0,0)
c(1,2,2,3,0)
c(2,0,4,3,0)
c(2,1,3,2,0)
c(3,0,5,3,0)
c(3,3,4,2,0)
c(4,1,5,0,0)

c(0,4,3,5,0)
c(0,5,5,6,0)
c(0,6,1,7,0)
c(0,7,2,6,0)
c(1,4,5,5,0)
c(1,5,4,4,0)
c(1,6,2,7,0)
c(2,4,4,7,0)
c(2,5,3,6,0)
c(3,4,5,7,0)
c(3,7,4,6,0)
c(4,5,5,4,0)

# these lines repeat connections from (0123) to (4567), and also tell the texture mode that four triangles should be repeated twice
# (put them after specifying connections); however, it works better without them

# repeat(0, 2)
# repeat(1, 2)
# repeat(2, 2)
# repeat(3, 2)
# repeat(4, 2)
# repeat(5, 2)
