The Sierpiński arrowhead curve is a fractal curve similar in appearance and identical in limit to the Sierpiński triangle.
Contents
The Sierpiński arrowhead curve draws an equilateral triangle with triangular holes at equal intervals. It can be described with two substituting production rules: (A → B-A-B) and (B → A+B+A). A and B recur and at the bottom do the same thing — draw a line. Plus and minus (+ and -) mean turn 60 degrees either left or right. The terminating point of the Sierpiński arrowhead curve is always the same provided you recur an even number of times and you halve the length of the line at each recursion. If you recur to an odd depth (order is odd) then you end up turned 60 degrees, at a different point in the triangle.
In code, given these drawing functions: void draw_line( double distance); void turn( int angle_in_degrees); The code to draw an (approximate) Sierpiński arrowhead curve looks like this.
Representation as Lindenmayer system
The Sierpiński arrowhead curve can be expressed by a rewrite system (L-system).
Alphabet: X, Y Constants: F, +, − Axiom: XF Production rules: X → YF + XF + Y Y → XF − YF − XHere, F means “draw forward”, + means “turn left 60°”, and − means “turn right 60°” (see turtle graphics).
Like many two-dimensional fractal curves, the Sierpiński arrowhead curve can be extended to three dimensions: