<?php
error_reporting
(E_ALL);
session_start();

$hoehe  $breite 200;

if(isset(
$_GET['showsource']))
{
  
highlight_file(__FILE__);
  exit;
}

if(isset(
$_GET['modus']))
{
  
$modus $_GET['modus'];
}else
{
  
$modus 4;
}
 
if(
$modus 4)
{
  
$modus mt_rand(0,4);
}

 
$xm = (int)($breite/2);
$ym = (int)($hoehe/2);
$kreise min($xm,$ym)-// nicht ganz bis zum Rand

$anzahlarme $kreise mt_rand(5,20);
$arme = array();
for (
$i=0;$i<$anzahlarme;$i++) $arme[] = mt_rand(0,359000)/1000;

$im imagecreate($breite,$hoehe);

$hintergrund imagecolorallocate($im,50,50,50);
$transparent imagecolorallocate($im,0,0,255);
$vordergrund imagecolorallocate($im,250,250,250);
imagecolortransparent($im,$transparent);
imagefill($im,0,0,$transparent);
imagefilledellipse($im,$xm,$ym$breite-1,$hoehe-1,$hintergrund);
$spiralig mt_rand(2,20);
$speed mt_rand(2,4);
for(
$i=0;$i<$kreise;$i++)
{
  foreach(
$arme as $winkel)
  {
    switch(
$modus)
    {
      case 
1$neuerwinkel $winkel+$i/$spiralig;
              
$x = (int) (cos(deg2rad($neuerwinkel))*$i+$xm);
              
$y = (int) (sin(deg2rad($neuerwinkel))*$i+$ym);
              
imagesetpixel($im,$x,$y,$vordergrund);
                break;

      case 
2$neuerwinkel $winkel+$i*$spiralig;
              
$x = (int) (cos(deg2rad($neuerwinkel))*$i+$xm);
              
$y = (int) (sin(deg2rad($neuerwinkel))*$i+$ym);
              
imagesetpixel($im,$x,$y,$vordergrund);
                break;
                
      case 
3$spiralig mt_rand(1,3);
              
$neuerwinkel $winkel+$i*$spiralig;
              
$x = (int) (cos(deg2rad($neuerwinkel))*$i+$xm);
              
$y = (int) (sin(deg2rad($neuerwinkel))*$i+$ym);
              
imagesetpixel($im,$x,$y,$vordergrund);
                break;
                
      case 
4:
              
$schwund = (int) ($kreise-$i)/10;
              for(
$j=0;$j<$schwund;$j++)
              {
                
$spiralig mt_rand(0,5000*$schwund)/1000;
                
$neuerwinkel $winkel+$i*$speed+$spiralig;
                
$x = (int) (cos(deg2rad($neuerwinkel))*$i+$xm);
                
$y = (int) (sin(deg2rad($neuerwinkel))*$i+$ym);
                
imagesetpixel($im,$x,$y,$vordergrund);
              }
                break;

      default:  
$neuerwinkel $winkel+$i/$spiralig;
                
$x = (int) (cos(rad2deg($neuerwinkel))*$i+$xm); // falsch! eigendlich deg2rad
                
$y = (int) (sin(rad2deg($neuerwinkel))*$i+$ym); // falsch! eigendlich deg2rad
                
imagesetpixel($im,$x,$y,$vordergrund);
    }
  }
  
array_pop($arme);
}
header("Content-type: image/png");
header("Refresh: 2; url=".$_SERVER['SCRIPT_NAME'].'?modus='.$modus);
imagepng($im);
exit;
?>