Jistě si pamatujete hru Inspiro - spousta zubatých koleček, jezdíte tužkou jako blázen a pozorujete, jaký zvláštní obrazek vám vzniká pod rukama.
Ani nevím, jak mě napadlo to naprogramovat do počítače. Byl to rozhodně špatný nápad, protože Inspiro byla hlavně hra na procvičování jemné motoriky, což počítač nikdy nenahradi. Každopádně zde máte php stroj na vyrábění těchto obrázců v kuriozních konstelacích. Hodnoty, které nenastavíte, určí počítač náhodně. Vyzkoušejte klávesu F5 - reload.
Časem jsem naprogramoval ještě
jiné varianty.
Pokud byste měli zájem o zdrojové soubory, není problém zaslat. Je to pár řádek v polárních souřadnicích.
<?php
Header("Content-type: image/png");
// function test_promenne(&$promenna, $typ, $default, $horni, $dolni) {
// switch $typ {
// case "int":
// (is_integer($promenna) && $promenna <= $horni && $promenna >= $dolni)? return $promenna : return $default;
// break;
// }
// }
//
// $promenna=34
// echo "test vratil: " . test($promenna, "int", 55, 50, 100);
// exit();
if ($pozadir=="" || $pozadir>255 || $pozadir<0 || !is_numeric($pozadir)) $pozadir=255;//128 0 cerna 255 bila
if ($pozadig=="" || $pozadig>255 || $pozadig<0 || !is_numeric($pozadig)) $pozadig=255;//0
if ($pozadib=="" || $pozadib>255 || $pozadib<0 || !is_numeric($pozadib)) $pozadib=255;//0
if ($popredir==""|| $popredir>255 || $popredir<0 || !is_numeric($popredir)) $popredir=0;//150
if ($popredig==""|| $popredig>255 || $popredig<0 || !is_numeric($popredig)) $popredig=0;//60
if ($popredib==""|| $popredib>255 || $popredib<0 || !is_numeric($popredib)) $popredib=0;//0
if ( $picWidth=="" || $picWidth<10|| $picWidth>1500 || !is_numeric( $picWidth)) $picWidth=400;//round(400*$pomerx);
if ($picHeight=="" || $picHeight<10|| $picHeight>1500 || !is_numeric($picHeight))$picHeight=400;//round(400*$pomery);
$xbase = $picWidth / 2;
$ybase = $picHeight / 2;
$mala=min($xbase,$ybase);
if ($pomer<0 || $pomer>100 || !is_numeric($pomer) ) $pomerx=round(rand(20,100))/100; else $pomerx=$pomer/100;
if ($pomer<0 || $pomer>100 || !is_numeric($pomer) ) $pomery=round(rand(20,100))/100; else $pomery=$pomer/100;
if ($elipsa=="") $elipsa=rand(0,1);
if ($elipsa==1) $pomery=1; else $pomerx=1;
//$pomerx=1;
//$pomery=1;
$pic=ImageCreate($picWidth+1,$picHeight+1);
$cRed=ImageColorAllocate($pic,$pozadir,$pozadig,$pozadib); //pozadi
$cYellow=ImageColorAllocate($pic,$popredir,$popredig,$popredib); //popredi
// $cBackground=ImageColorAllocate($pic,0,0,0);
if (($r1=="")&&($r2=="")&&($r3=="")) $volnaruka=rand(1,2);
if ($r1=="") $r1=rand(1, $mala); //vnější obvod
if ($r2=="") $r2=rand(1, $mala); // průměr pastorku
if ($r3=="") $r3=rand(1, $mala); // průměr dikry v pastorku
/*
if ($r1=="") $r1=$xbase * .90 + rand(0,$xbase/10); //vnější obvod
if ($r2=="") $r2=$xbase * 0.3 + rand(0,$xbase * 0.6); // průměr pastorku
if ($r3=="") $r3=$xbase * 0 + rand(0, $xbase/4); // průměr dikry v pastorku
*/
if ($orientace == "") $orientace=2*rand(0,1)-1;
// směr odvalu náhodně 1 - vnejsi obvod či -1 - vnitrni obvod
$pomerr=$mala/(abs($r1+$orientace*$r2)+$r3);
if ($volnaruka==1) $pomerr=1; //hausnumera
$r1 = $r1 * $pomerr;
$r2 = $r2 * $pomerr;//
$r3 = $r3 * $pomerr;
if ($krok=="") $krok=rand(1,150)/10;
if ($kroku=="") $kroku=rand(5,300)*$krok;
$rr= abs($r1 + $orientace*$r2);
$j = 0;
$a1 = $j/$krok;//úhel alfa
$a2 = $orientace*$a1*$r1/$r2;//úhel beta
$nx = round($xbase + (cos($a1)*($rr) + cos($a2)*($r3))*$pomerx);
$ny = round($ybase + (sin($a1)*($rr) + sin($a2)*($r3))*$pomery);
$px = $nx;
$py = $ny;
do {
$j++;
$a1= $j/$krok;
$a2= $orientace*$a1*$r1/$r2;
$sx=$nx;
$sy=$ny;
$nx=round($xbase + (cos($a1)*($rr) + cos($a2)*($r3))*$pomerx);
$ny=round($ybase + (sin($a1)*($rr) + sin($a2)*($r3))*$pomery);
imageline($pic, $sx, $sy, $nx, $ny, 1);
// imagesetpixel ($pic, $nx,$ny , 1);
} while ((($nx!=$px) || ($ny!=$py)) && ($j<$kroku));
if ($vystup==1):
$f = fopen("background1.htm", "w");
$promenne="picWidth=".$picWidth."&picHeight=".$picHeight."&pozadir=".$pozadir."&pozadig=".$pozadig."&pozadib=".$pozadib."&popredir=".$popredir."&popredig=".$popredig."&popredib=".$popredib."&pomer=".$pomer."&elipsa=".$elipsa."&r1=".$r1."&r2=".$r2."&r3=".$r3."&orientace=".$orientace."&krok=".$krok."&kroku=".$kroku;
fputs($f, "<html><body>");
fputs($f, "<a href=inspir1.php?".$promenne.">hodnoty vlozit do formulare inspiro.php</a><br>");
fputs($f, "<a href=background1.php?".$promenne.">ulozene hodnoty z background1.php</a><br>");
fputs($f, $promenne);
fputs($f, "<br><a href=inspiro1.php?picWidth=$picWidth&picHeight=$picHeight&pozadir=$pozadir&pozadig=$pozadig&pozadib=$pozadib&popredir=$popredir&popredig=$popredig&popredib=$popredib&pomer=$pomer&elipsa=$elipsa&r1=$r1&r2=$r2&r3=$r3&orientace=$orientace&krok=$krok&kroku=$kroku&vystup=$vystup target=_blank>Líbí se Vám obrázek? Uložte si tento odkaz.</a>");
fputs($f, "</body></html>");
fclose($f);
endif;
Imagepng($pic);
ImageDestroy($pic);
?>