Question: The chaos game procedure

I have the following procedure that generates Sierpinski's triangle:

seirpinski := proc (n)
> local Mat, Vector1, Vector2, Vector3,
> Prob1, Prob2, Q, prob, counter, fractalplot;
> Mat := linalg[matrix]([[.5, 0.], [0., .5]]);
> Vector1 := linalg[vector]([0, 0]);
> Vector2 := linalg[vector]([0, 0.5]);
> Vector3 := linalg[vector]([0.5, 0]);
> Prob1 := .333; Prob2 := .333;
> Q := linalg[vector]([0, 0]);
> writedata("fractaldata", [[Q[1], Q[2]]], [float, float]);
> for counter to n do
> prob := (1/10^(12))*rand();
> if prob < Prob1 then Q := evalm(`&*`(Mat, Q)+Vector1)
> elif prob < Prob1+Prob2 then Q := evalm(`&*`(Mat, Q)+Vector2)
> else Q := evalm(`&*`(Mat, Q)+Vector3)
> end if;
> writedata[APPEND]("fractaldata", [[Q[1], Q[2]]], [float, float])
> end do;
> fractalplot := readdata("fractaldata", 2);
> print(plot(fractalplot, style = point, scaling = constrained,
> symbol = point, axes = none, color = black)); fremove("fractaldata");
> end proc;

How would I modify this, 1) to only apply IF2 and IF3 to the procedure and 2)to create Sierpinski's carpet.

Thanks.

Please Wait...