- Wstęp
- Mam wzór
- Trójkąt Sierpińskiego - 4 algorytmy
- Zbiór Mandelbrota
- Algorytm IFS
- Autor
|
Ciekawym algorytmem pozwalającym otrzymać trójkąt Sierpińskiego jest gra w chaos. Narysujmy trzy punkty A, B i C tak, żeby nie leżały na jednej prostej.
1° Wybierzmy dowolny punkt D, leżący wewnątrz
ΔABC (Możemy wybrać także punkt spoza wnętrza
trójkąta, wtedy kilka pierwszych punktów nie będzie
należała do Trójkąta Sierpińskiego).
2° losowo wybieramy jeden z punktów A, B lub C,
rysujemy punkt w połowie odległości między D
i wybranym punktem.
Nowo narysowany punkt oznaczamy przez D..
3° Punkt 2° powtarzamy dostatecznie długo..
|
Aplet startuje tak, że punkty A, B i C tworzą Δrównoboczny (do którego zawsze można powrócić)
Wylosowanie punktu A, B lub C jest sygnalizowane zmianą koloru punktu D odpowiednio:
RED (A), GREEN (B) oraz BLUE (C).
Myszą zmienisz położenie punktu C - sprawdzimy dodatkowo uniwersalność algorytmu.
void wierzcholki()
{double h=0.5*bok*Math.sqrt(3);
w[0]=new pkt2d(-bok/2,-h/3+v);
w[1]=new pkt2d(-w[0].x,w[0].y);
w[2]=new pkt2d(0,2*h/3+v);
p=new pkt2d(0,0);
pam.war(w[2].x,w[2].y);
}
//-------------------------------------------------
pkt2d srodek(pkt2d x,pkt2d y)
{
return new lo28.pkt((x.x+y.x)/2,(x.y+y.y)/2);
}
//-------------------------------------------------
void gra(Graphics g)
{int los,i;
for(i=0;i<5000;i++)
{
los=mat.losowa_c(3);
p=srodek(p,w[los]);
lo28.punkt(g,p);
}
}
|
Obok szczegóły algorytmu. Jest bardzo prosty. Można go oczywiście dowolnie wzbogacać i modyfikować.
Jako przykład zobacz opracowanie i rozwinięcie tego pomysłu.
|