Sierpinského trojúhelník v AS3

V tomto článku si ukážeme, jak v ActionScript 3 snadno rekurzivně nakreslit fraktál, a to konkrétně Sierpinského trojúhelník.

Sierpinského trojúhelník

Sierpinského trojúhelník je fraktálový obrázek, který lze vytvořit např. tímto způsobem:
  1. Nakreslíme černý trojúhelník
  2. Z černého trojúhelníku odstraníme "vnitřní trojúhelník" a tuto funkci zavoláme na tři menší trojúhelníky, které vznikly v okolí
Další informace naleznete ve článku na Wikipedii.

Kód v AS3

var limit:int = 6;

function drawTriangle(x:Number, y:Number, level:int, size:Number):void
{
   if(level==0)  // pokud jsme na 0. úrovni, nakreslíme čer. troj.
      with(graphics)
      {
         clear();
         beginFill(0x00);
         moveTo(x, y-size);
         lineTo( x + size * 1.73/2, y + size/2);
         lineTo( x - size * 1.73/2, y + size/2);
         moveTo(x, y-size);
         endFill();
      }
   if(level == limit) return; // pokud jsme se zanořili do limitu, nepokračujeme
   with(graphics)    // nakreslíme bílý trojúhelník
   {
      beginFill(0xffffff);
      moveTo(x, y+size/2);
      lineTo( x - size * 1.73/4, y - size/4);
      lineTo( x + size * 1.73/4, y - size/4);
      moveTo(x, y+size/2);
      endFill();
   }
   // nakreslíme trojúhelníky kolem
   drawTriangle(x, y - size/2, level+1, size/2); // horní
   drawTriangle(x - size * 1.73/4, y + size/4, level+1, size/2); // pravý dolní
   drawTriangle(x + size * 1.73/4, y + size/4, level+1, size/2); // levý dolní
}

1 komentářů:

  1. Unknown ... (21. března 2015 v 8:54)

    ahoj ... Snažím se napsat v Flash Sierpinského trojúhelník, ale nefunguje. Někdo by mi uměl poslat Fla soubor, abych věděl, jak to funguje? (nagy33attila@gmail.com)
    předem děkuji

Okomentovat