<?php
header("Content-type: image/png");
$koko = 300; // Ympyrän koko
$im = imagecreatetruecolor($koko, $koko);
// Lasketaan keskipiste, koko-1 koska koordinaatit alkavat nollasta,
// koko alkaa aina ykkösestä, ei ole olemassa 0 kokoista kappaletta.
// Ilman kyseistä vähennyslaskua emme voisi tehdä tarkasti tietyn kokoisia ympyröitä.
$kp = ($koko-1)/2;
// Lasketaan keskipisteen neliö, myöhempää vertailua varten:
$kpn = $kp*$kp;
// Käydään raa'asti koko ruutu läpi, ja vertaillaan jokaista pikseliä:
for($y = 0; $y < $koko; $y++){
for($x = 0; $x < $koko; $x++){
// Lasketaan etäisyys, kaava: (leveys^2)+(korkeus^2)
// Negatiivisillä arvoilla ei ole merkitystä, koska potenssiin korotus poistaa ne automaattisesti:
$eta = ($kp-$x)*($kp-$x)+($kp-$y)*($kp-$y);
// Saimme tulokseksi etäisyyden neliön, joten meidän pitää
// verrata sitä keskipisteen neliöön, jonka laskimme etukäteen:
if($eta < $kpn){
// Lasketaan etäisyys pikseleissä (neliöjuuri), ja skaalataan väriarvo:
$color = (sqrt($eta)/$kp)*255;
// Otetaan negatiivinen väriarvo, ja pyöristetään väri:
$color = 255-(int)($color+0.5);
imagesetpixel($im, $x, $y, $color);
}
}
}
imagepng($im);
imagedestroy($im);
?>Aihe on jo aika vanha, joten et voi enää vastata siihen.