## SIERPINSKI GASKET

Return

PASCAL'S TRIANGLE
Z<-PASCAL N;T
T<-1 & Z<-""
AA: ->(0=N--)/0 & Z<-Z,:(-36-4*rT)m72t8zT & T<-(0,T)+T,0 & ->AA
$ PASCAL 9
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
1 6 15 20 15 6 1
1 7 21 35 35 21 7 1
1 8 28 56 70 56 28 8 1
When the values are coloured according to whether they are even or
odd you get a series of increasing triangles called the Sierpinski
gasket.
This may be generated by a random walk in the complex plane:-
Z[n+1] <- (Z[n]+X[n])/2
where X[1],X[2],... are random variables, each taking one of
the three values a,b,c with probability 1/3. Here (a,b,c) are the
vertices of a triangle.

The generation of this triangle is very easy to rotate. It is
also possible to generalise the procedure to four or more points.
The formula should be:-

Z[n+1]<-(Z[n]+(n-2)*X[n])/(n-1)

Here X is a random variable which takes one of n complex values
with probability 1/n.
When done on a computer the random walks are completely determined.
each X[n] is determined by its precedessor. The pair (Z,X) satisfies
an equation (Z,X)<-F(Z,X). This is an example of a dynamical system.
The random variable X is often generated by modular arithmetic.

## SIERPINSKI TRIANGLE

#### SOURCE CODE

The dynamical systems for triangles and Cantor Dust are very similar.
The example program draws a rectangle, designates a random triangle then
tiles the interior with random dots selected by going half way to a
randomly selected vertex. Integer co-ordinates are used throughout,
and the computation is simple but laborious since each step depends
on the previous value calculated.

Z<-TRIANGLES STR;NLINES;DZ;SI;T;ZT
|Display triangles
AA: 7 #kjplot $GW & 0 #kjbloc $GW+1 1 _2 _2
DZ<-(1 #theta Z)-Z<-(3 2 r $GW[0 1])+? 3 2 r $GW[2 3]
SI<-1+? 15 & $GZ<-Z[0]
0 r SI #kjvec DZ
SI SP_TILE Z
WAIT $DELAY
->AA
XX:Z<-""
Z<-SI SP_TILE A;CNT;T;N;N2;N1
|Tile a figure with sierpinski gasket or cantor dust
T<-i0 & N<-1tr:A & Z<- (+/A)%N & N1<-N-1 & N2<-N-2 & CNT<-12000
AA: ->(0=CNT--)/XX
T<-T,:Z<-(Z+N2*A[?N])%N1 & ->(500>1tr:T)/AA
SI #kjplot T+(rT)r$GW[0 1] & T<-i0
->AA
XX:Z<-""

Back to the Top