<?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.