eXorithm – Execute Algorithm: View / Run Algorithm draw_sierpinski

Logo Beta

function draw_sierpinski ($size$color

{

  // see http://en.wikipedia.org/wiki/Sierpinski_triangle

  // this code from http://php.net/manual/en/function.imagesetpixel.php

  

  $hght = roundsqrt$size$size - ($size/2)*($size/2)));

  $diff = round(($size - $hght)/2);

  

  $gd = imagecreatetruecolor$size$size);

   

  $corners[0] = array'x' => round$size/2), 'y' => $diff);

  $corners[1] = array'x' =>   0, 'y' => $size$diff);

  $corners[2] = array'x' => $size'y' => $size$diff);

  

  $red = hexdecsubstr$color, 0, 2));

  $green  = hexdecsubstr$color, 2, 2));

  $blue  = hexdecsubstr$color, 4, 2));

  

  $color = imagecolorallocate$gd$red$green$blue);

  

  $x = $size

  $y = $size

  

  for ($i = 0; $i < 200000; $i++) {

    imagesetpixel$gdround$x),round$y), $color);

    $a = rand(0, 2);

    $x = ($x + $corners$a]['x']) / 2;

    $y = ($y + $corners$a]['y']) / 2;

  }

  return $gd