Trikotnik Sierpinskega

Iz MaFiRaWiki

Trikotnik Sierpinskega je fraktal. Opišemo ga kot limito trikotnikov Sieprinskega reda n. Trikotnik reda 0 je običajen enakostraničen trikotnik. Trikotnik reda n + 1 dobimo tako, da da sestavimo tri trikotnike reda n − 1, pomanjšane za faktor 1/3, kakor je to prikazano na sliki. Od leve proti desni vidimo trikotnike reda 0, 1, 2, 3 in 4.

Slika:Sierpinski.jpg

Program

Metoda trikotnik nariše trikotnik Sierpinskega danega reda.

  1. public static void trikotnik(Graphics g, int stopnja, int x, int y, int velikost) {
  2. // (x, y + velikost) so koordinate levega oglišča
  3. // velikost - velikost osnovnice
  4. // kraka sta velikosti velikost * sqrt(5/4)
  5. if (stopnja == 0) {
  6. int[] xi = {x, x + velikost, x + velikost/2};
  7. int[] yi = {y + velikost, y + velikost, y};
  8. g.fillPolygon(xi, yi, 3);
  9. }
  10. else {
  11. trikotnik(g, stopnja - 1, x, y + velikost/2, velikost/2);
  12. trikotnik(g, stopnja - 1, x + velikost/2, y + velikost/2, velikost/2);
  13. trikotnik(g, stopnja - 1, x + velikost/4, y, velikost/2);
  14. }
  15. }
Osebna orodja