Koch Snowflake
Date: 9 July 2013

A = (0, 0)
B = (10, 0)
C = Rotate(B, 60°, A)
A1: {{A, B}, {B, C}, {C, A}}
B1 = Sequence(Segment[Element[Element[A1, i], 1], Element[Element[A1, i], 2]], i, 1, 3)
A2 = Join(Sequence[{{Element[Element[A1, i], 1], (2 / 3 * Element[Element[A1, i], 1]) + (1 / 3 * Element[Element[A1, i], 2])}, {(2 / 3 * Element[Element[A1, i], 1]) + (1 / 3 * Element[Element[A1, i], 2]), Rotate[(1 / 3 * Element[Element[A1, i], 1]) + (2 / 3 * Element[Element[A1, i], 2]), 300°, (2 / 3 * Element[Element[A1, i], 1]) + (1 / 3 * Element[Element[A1, i], 2])]}, {Rotate[(1 / 3 * Element[Element[A1, i], 1]) + (2 / 3 * Element[Element[A1, i], 2]), 300°, (2 / 3 * Element[Element[A1, i], 1]) + (1 / 3 * Element[Element[A1, i], 2])], (1 / 3 * Element[Element[A1, i], 1]) + (2 / 3 * Element[Element[A1, i], 2])}, {(1 / 3 * Element[Element[A1, i], 1]) + (2 / 3 * Element[Element[A1, i], 2]), Element[Element[A1, i], 2]}}, i, 1, Length[A1]])
B2 = Sequence(Segment[Element[Element[A2, i], 1], Element[Element[A2, i], 2]], i, 1, Length[A2])
A3 = Join(Sequence[{{Element[Element[A2, i], 1], (2 / 3 * Element[Element[A2, i], 1]) + (1 / 3 * Element[Element[A2, i], 2])}, {(2 / 3 * Element[Element[A2, i], 1]) + (1 / 3 * Element[Element[A2, i], 2]), Rotate[(1 / 3 * Element[Element[A2, i], 1]) + (2 / 3 * Element[Element[A2, i], 2]), 300°, (2 / 3 * Element[Element[A2, i], 1]) + (1 / 3 * Element[Element[A2, i], 2])]}, {Rotate[(1 / 3 * Element[Element[A2, i], 1]) + (2 / 3 * Element[Element[A2, i], 2]), 300°, (2 / 3 * Element[Element[A2, i], 1]) + (1 / 3 * Element[Element[A2, i], 2])], (1 / 3 * Element[Element[A2, i], 1]) + (2 / 3 * Element[Element[A2, i], 2])}, {(1 / 3 * Element[Element[A2, i], 1]) + (2 / 3 * Element[Element[A2, i], 2]), Element[Element[A2, i], 2]}}, i, 1, Length[A2]])
B3 = Sequence(Segment[Element[Element[A3, i], 1], Element[Element[A3, i], 2]], i, 1, Length[A3])
A4 = Join(Sequence[{{Element[Element[A3, i], 1], (2 / 3 * Element[Element[A3, i], 1]) + (1 / 3 * Element[Element[A3, i], 2])}, {(2 / 3 * Element[Element[A3, i], 1]) + (1 / 3 * Element[Element[A3, i], 2]), Rotate[(1 / 3 * Element[Element[A3, i], 1]) + (2 / 3 * Element[Element[A3, i], 2]), 300°, (2 / 3 * Element[Element[A3, i], 1]) + (1 / 3 * Element[Element[A3, i], 2])]}, {Rotate[(1 / 3 * Element[Element[A3, i], 1]) + (2 / 3 * Element[Element[A3, i], 2]), 300°, (2 / 3 * Element[Element[A3, i], 1]) + (1 / 3 * Element[Element[A3, i], 2])], (1 / 3 * Element[Element[A3, i], 1]) + (2 / 3 * Element[Element[A3, i], 2])}, {(1 / 3 * Element[Element[A3, i], 1]) + (2 / 3 * Element[Element[A3, i], 2]), Element[Element[A3, i], 2]}}, i, 1, Length[A3]])
B4 = Sequence(Segment[Element[Element[A4, i], 1], Element[Element[A4, i], 2]], i, 1, Length[A4])
A5 = Join(Sequence[{{Element[Element[A4, i], 1], (2 / 3 * Element[Element[A4, i], 1]) + (1 / 3 * Element[Element[A4, i], 2])}, {(2 / 3 * Element[Element[A4, i], 1]) + (1 / 3 * Element[Element[A4, i], 2]), Rotate[(1 / 3 * Element[Element[A4, i], 1]) + (2 / 3 * Element[Element[A4, i], 2]), 300°, (2 / 3 * Element[Element[A4, i], 1]) + (1 / 3 * Element[Element[A4, i], 2])]}, {Rotate[(1 / 3 * Element[Element[A4, i], 1]) + (2 / 3 * Element[Element[A4, i], 2]), 300°, (2 / 3 * Element[Element[A4, i], 1]) + (1 / 3 * Element[Element[A4, i], 2])], (1 / 3 * Element[Element[A4, i], 1]) + (2 / 3 * Element[Element[A4, i], 2])}, {(1 / 3 * Element[Element[A4, i], 1]) + (2 / 3 * Element[Element[A4, i], 2]), Element[Element[A4, i], 2]}}, i, 1, Length[A4]])
B5 = Sequence(Segment[Element[Element[A5, i], 1], Element[Element[A5, i], 2]], i, 1, Length[A5])
n = 5 (slider from 1 to 6, step 1)
A6 = Join(Sequence[{{Element[Element[A5, i], 1], (2 / 3 * Element[Element[A5, i], 1]) + (1 / 3 * Element[Element[A5, i], 2])}, {(2 / 3 * Element[Element[A5, i], 1]) + (1 / 3 * Element[Element[A5, i], 2]), Rotate[(1 / 3 * Element[Element[A5, i], 1]) + (2 / 3 * Element[Element[A5, i], 2]), 300°, (2 / 3 * Element[Element[A5, i], 1]) + (1 / 3 * Element[Element[A5, i], 2])]}, {Rotate[(1 / 3 * Element[Element[A5, i], 1]) + (2 / 3 * Element[Element[A5, i], 2]), 300°, (2 / 3 * Element[Element[A5, i], 1]) + (1 / 3 * Element[Element[A5, i], 2])], (1 / 3 * Element[Element[A5, i], 1]) + (2 / 3 * Element[Element[A5, i], 2])}, {(1 / 3 * Element[Element[A5, i], 1]) + (2 / 3 * Element[Element[A5, i], 2]), Element[Element[A5, i], 2]}}, i, 1, Length[A5]])
B6: {}