dh-Materialien
Einführung in Maple    
Übungen
 

Das Sierpinski-Dreieck

> restart; with(geometry):

Definition des gleichseitigen Dreiecks ABC 
mit A = (0|0); B = (1|0) und C = (0,5|0,5sqrt(3)):

> A:= [0,0]:
  B:= [1,0]:
  C:= [1/2, 1/2*sqrt(3)]:
  ABC:= [A, B, C];

ABC

Definition von drei zentrischen Streckungen f1, f2 und f3:

> f[1]:= (x1,x2) -> 1/2*(x1,x2);
  f[2]:= (x1,x2) -> 1/2*(x1,x2) + (1/2, 0);
  f[3]:= (x1,x2) -> 1/2*(x1,x2) + (1/4, 1/4*sqrt(3));



Startmenge M der Sierpinski-Mengenfolge:

> M:= {ABC};
  n:= nops(M);
  m:= 0;


n := 1
m := 0

Iterationsvorschrift zur Erzeugung der Sierpinskifolge M0, M1, M2, ...

> NextSet:= proc ()
    local i, j; global M, n, m;
    m:= m + 1;
    n:= nops(M);  
    for i from 1 to n do Told||i:= op (i, M); od;
    for i from 1 to n do
      for j from 1 to 3 do
        Tnew||i||j:=[[f[j](Told||i[1][1],Told||i[1][2])],
                    [f[j](Told||i[2][1],Told||i[2][2])],
                    [f[j](Told||i[3][1],Told||i[3][2])]];
        M:= M union {Tnew||i||j};
      od:
      M:= M minus {Told||i};
    od;
  end:

> CreateTriangles:= proc (M)
    local i, j;
    global n, T, P1, P2, P3, Dreiecke;
    n:= nops(M);
    Dreiecke:= {};
    for i from 1 to n do
      for j from 1 to 3 do
       point(P||i||j,op(j,op(i,M))[1],op(j,op(i,M))[2]);
      od;
      triangle(T||i, [P||i||1, P||i||2, P||i||3]);
      Dreiecke:= Dreiecke union {T||i};
    od;                    
  end:

Der Start der Sierpinski-Iteration mit dem oben definierten Dreieck ABC:

> CreateTriangles(M);
  draw(Dreiecke, axes=none, color=black, filled=true);
  m;

{T1}

0

Der erste Iterationsschritt:

> NextSet(M);
  CreateTriangles(M);
  draw(Dreiecke, axes=none, color=black, filled=true);
  m;



 
1

Weitere Schritte:

> NextSet(M):
  CreateTriangles(M):
  draw(Dreiecke, axes=none, color=black, filled=true);
  m;


2


 Home   Back   Top