<?php

function sierpinski($indice,$xp1,$yp1,$xp2,$yp2)
{global $niveau,$image,$col4;
$xpt1=$xp1+($xp2-$xp1)/3;$ypt1=$yp1+($yp2-$yp1)/3;
$xpt2=$xp1+($xp2-$xp1)*2/3;$ypt2=$yp1+($yp2-$yp1)*2/3;
imagefilledrectangle ($image,$xpt1,$ypt1,$xpt2,$ypt2,$col4);
if ($indice<$niveau)
{$xpt1=$xp1;$ypt1=$yp1;
$xpt2=$xp1+($xp2-$xp1)/3;$ypt2=$yp1+($yp2-$yp1)/3;
sierpinski($indice+1,$xpt1,$ypt1,$xpt2,$ypt2);
$xpt1=$xp1+($xp2-$xp1)/3;$ypt1=$yp1;
$xpt2=$xp1+($xp2-$xp1)*2/3;$ypt2=$yp1+($yp2-$yp1)/3;
sierpinski($indice+1,$xpt1,$ypt1,$xpt2,$ypt2);
$xpt1=$xp1+($xp2-$xp1)*2/3;$ypt1=$yp1;
$xpt2=$xp2;$ypt2=$yp1+($yp2-$yp1)/3;
sierpinski($indice+1,$xpt1,$ypt1,$xpt2,$ypt2);
$xpt1=$xp1;$ypt1=$yp1+($yp2-$yp1)/3;
$xpt2=$xp1+($xp2-$xp1)/3;$ypt2=$yp1+($yp2-$yp1)*2/3;
sierpinski($indice+1,$xpt1,$ypt1,$xpt2,$ypt2);
$xpt1=$xp1+($xp2-$xp1)*2/3;$ypt1=$yp1+($yp2-$yp1)/3;
$xpt2=$xp2;$ypt2=$yp1+($yp2-$yp1)*2/3;
sierpinski($indice+1,$xpt1,$ypt1,$xpt2,$ypt2);
$xpt1=$xp1;$ypt1=$yp1+($yp2-$yp1)*2/3;
$xpt2=$xp1+($xp2-$xp1)/3;$ypt2=$yp2;
sierpinski($indice+1,$xpt1,$ypt1,$xpt2,$ypt2);
$xpt1=$xp1+($xp2-$xp1)/3;$ypt1=$yp1+($yp2-$yp1)*2/3;
$xpt2=$xp1+($xp2-$xp1)*2/3;$ypt2=$yp2;
sierpinski($indice+1,$xpt1,$ypt1,$xpt2,$ypt2);
$xpt1=$xp1+($xp2-$xp1)*2/3;$ypt1=$yp1+($yp2-$yp1)*2/3;
$xpt2=$xp2;$ypt2=$yp2;
sierpinski($indice+1,$xpt1,$ypt1,$xpt2,$ypt2);
}
}

function faire_image($niveau)
{global $x_pt,$y_pt,$num,$image,$col4,$niveau;
$image=imagecreate(450,450);
$col_fond = ImageColorAllocate($image, 200,200,200);
$col1 = ImageColorAllocate($image,255,255,255);
$col2 = ImageColorAllocate($image,255,0,0);
$col3 = ImageColorAllocate($image,0,255,0);
$col4 = ImageColorAllocate($image,0,0,0);
imagefill($image,0, 0,$col_fond);
imagefilledrectangle ($image,10,10,440,440,$col1);
imagefilledrectangle ($image,25,25,425,425,$col2);
$indice=1;$xa=25;$ya=25;$xb=425;$yb=425;
sierpinski($indice,$xa,$ya,$xb,$yb);
ImagePng($image);
}

function faire_page()
{global $niveau,$num;
echo "<html><body><FONT face='Verdana, Arial' size=2 color='#000080'><center>\n";
echo "Tracé du tapis de Sierpinski";
echo "<BR>Choisissez le niveau de récursivité 0 - 5";
echo "<form METHOD='GET' ACTION='sierpinski2.php3?action=niv&'>\n";
echo "<table border='1' width='350'>\n";
echo "<tr><td width='30%'><b>Niveau de récursivité</b></td>\n";
echo "<td width='20%'><input type='text' name='niveau' size='10' value='".$niveau."'></td>\n";
echo "<td width='10%'><INPUT TYPE=SUBMIT VALUE='OK'>\n";
echo "</tr></table></form>\n";
echo "<BR>";
echo "<img src='sierpinski2.php3?action=img&niveau=".$niveau."' width='450' height='450'>";
echo "</body></html>";
}
if (isset($_GET["action"]))
	$action = $_GET["action"]; else $action = "niv";
if (isset($_GET["niveau"]))
	$niveau = $_GET["niveau"]; else $niveau = 1;
if ($action=="img") {faire_image($niveau);} else {faire_page();}
?>