outline: This is controls for a border for the triangular tiles.
The modes are:
A border round each triangle which the design at any stage
is divided into. The border is only round
the smallest triangles of the division,
and since these triangles are subtriangles of larger triangles, and
the edges are not always all contained in the larger triangle, the
shapes outlined by the black lines are not all triangles.
Same as (1), but also an outline to the original triangle of the
initial tiling.
This corresponds to a hinged tiling of triangles, but
the triangles shrink while hinging, and stay within the initial triangle
tiling. The initial triangles, shown when background (1) is chosen,
show how the operation is programmed, but with colouring (3) you get a better sense of the hinging of the triangles.
The width of the outline is controlled by the y coordinate of the magenta dot.
In this mode, no outlines of triangles are shown.
background:
This gives a random pastal colour to the initial triangle
tiles. This colour remains even as tiles are hinged, so it to show the
relation between the original
tiles and subsequent iterations of the pattern.
This is a uniform black background.
The triangles being hinged are all the same
colour, either black or white. This means that triangles may change
colour at each iteration stage, some switching from black to white
or vice versa. Not entirely satisfactory, but does make the hinged tiling
clearly visible, and is simple to code.
This is a slighly buggy version of changing tile colours as added;
a better version is (5), but I thought this was interesting, though they
change colour, so not quite right, if one wants constant coloured tiles.
The triangle divisions at each stage are different random pastal colours.
The colour depends on the coordinate of the middle of the triangle in
which the iteration transition transformation is taking place.
At each stage, when a tile is added to the design, it has a new colour,
depending on the stage at which it first appears. Colour depends on position
of pink dot.
This version does not work yet, since this part of code
has not been updated since change from version of hinged triangle tiling that
adds hexagon regions of triangles at each state
This is a debugging version that shows different colours for differnt
regions of the triangle division. Doesn't change colour of central region, or
corner regions of divided triangle.
curves: This is about the style and colour of the paths, but not
the actual directions of the paths, which corresponds to the orientation of the tiles
Each initial segment is a random colour. Colours of paths
are preserved when the tiles are hinged. New colours of paths
introduced are all the same at each level. I.e., if two new paths
first appear at the same level of iteration of hinging, they have
the same colour.
Each initial segment is a random colour, with the interior
being a the opposite colour, i.e., paths have an outline.
Paths have a black outline.
The thickness of the black outline is controlled by the y coordinate
of the blue dot. The y coordinate of the yellow dot controls the
path thickness.
Paths are shaded to look somewhat 3D. Again,
y coordinate of the yellow dot controls the
path thickness.
Same as (4), but the "caps" on paths are not shown. Each triangle
only has an ars, with no dot marking the side with no arc.
Same as (4), but all new paths that are introduced at each step are
black, so only the iterations of the original paths can be seen on a
black background. This makes the result of iteration of individual paths easier to distinguish.
In this mode, no curves are shown, so the underlying tiling can be
seen more clearly.
paths: The initial tile orientations, which determine different
initial path patterns.
"random"; each segment different random colour
vertical wiggles interspaced with dots. Constant path colour
"smiles",
Constant path colour,
with colour controlled by yellow and
cyan dots.
Each tile has an (x,y,z) coordinate, since there
are three directions of sets of parallel lines.
I give the orientation as a function of these x,y,z, e.g.:
orientation = mod(IK.x*paritysign,3.);
orientation = mod(mod(IK.y,3.)*mod(IK.z,3.),3.);
orientation = mod((IK.y+IK.x)*IK.z,3.);
You can edit the code to try other options.
circles
dots: This is just whether the control dots are shown or not.
Variable iteration
iteration level constant across screen
iteration level depends on distance from centre, with
control parameter given by x coord of magenta dot
iteration level depends on distance from top, with
control parameter given by x coord of magenta dot