Ze wzoru na środek odcinka
Janusz Sobieraj - 28 LO

Trójkąt Sierpińskiego - wykorzystam wzór na wsp. środka odcinka

Trójkąt Sierpińskiego ( zobacz Wikipedia ) narysujemy stosując następujący algorytm :
1° Narysuję trójkąt równoboczny ABC
2° Wyznaczę środki jego boków: Ab, Bc, Ca i   usunę jego środkową część tzn ΔAb Bc Ca.
3° Krok powtarzamy dowolną ilość razy..
Punkty pozostające po nieskończenie wielu powtórzeniach tej operacji tworzą trójkąt Sierpińskiego.
Jedną z jego interesujących cech jest to, że jego pole jest równe zero ( PΔABC=0 ).

W algorytmie rysującym wykorzystam elementarne wzory geometrii analitycznej oraz rekurencjną budowę funkcji kreślącej. Na początek określę współrzędne wierzchołków ΔABC oraz przygotuję się do obliczeń środka odcinka. Realizacja algorytmu będzie już prostą konsekwencją tego podejścia.

void wierzcholki() 
{double h=0.5*bok*Math.sqrt(3); 
  a=new pkt2d(-bok/2,-h/3+v); 
  b=new pkt2d(-a.x,a.y); 
  c=new pkt2d(0,2*h/3+v); 
}

pkt2d srodek(pkt2d x,pkt2d y) 
{ 
  return new pkt2d((x.x+y.x)/2,(x.y+y.y)/2); 
} 

void sierp1(Graphics g,pkt2d a,pkt2d b,pkt2d c,int st) 
{pkt2d Ab,Bc,Ca; 
  if(st>0) 
    { 
      Ab=srodek(a,b); 
      Bc=srodek(b,c); 
      Ca=srodek(c,a); 
      trojkat(g,Ab,Bc,Ca); 

      sierp1(g,a,Ab,Ca,st-1); 
      sierp1(g,Ab,b,Bc,st-1); 
      sierp1(g,Ca,Bc,c,st-1); 
    } 
}