All pastes #286872 Raw Edit

Unnamed

public text v1 · immutable
#286872 ·published 2006-12-20 23:31 UTC
rendered paste body
<?php
 


function imagelinethick($image, $x1, $y1, $x2, $y2, $color, $thick = 1)
{
   if ($thick == 1) {
       return imageline($image, $x1, $y1, $x2, $y2, $color);
   }
   $t = $thick / 2 - 0.5;
   if ($x1 == $x2 || $y1 == $y2) {
       return imagefilledrectangle($image, round(min($x1, $x2) - $t), round(min($y1, $y2) - $t), round(max($x1, $x2) + $t), round(max($y1, $y2) + $t), $color);
   }
   $k = ($y2 - $y1) / ($x2 - $x1); //y = kx + q
   $a = $t / sqrt(1 + pow($k, 2));
   $points = array(
       round($x1 - (1+$k)*$a), round($y1 + (1-$k)*$a),
       round($x1 - (1-$k)*$a), round($y1 - (1+$k)*$a),
       round($x2 + (1+$k)*$a), round($y2 - (1-$k)*$a),
       round($x2 + (1-$k)*$a), round($y2 + (1+$k)*$a),
   );   
   imagefilledpolygon($image, $points, 4, $color);
   return imagepolygon($image, $points, 4, $color);
}

$size = 500;

$image = imagecreate($size,$size);
$bg = imagecolorallocate($image, 255, 200, 0);
$green = imagecolorallocate($image, 0, 255, 0);
$red = imagecolorallocate($image,255,0,0);
$black = imagecolorallocate($image,0,0,0);
$white = imagecolorallocate($image,255,255,255);


for($v = 0;$v <= $size;$v = $v + $size/10) { 
imagelinethick($image,$v,0,$v,$size,$black,$thick = 1); 
imagelinethick($image,$size,$v,0,$v,$black,$thick = 1); 
} 
for($q = 0;$q <= $size;$q = $q + $size/10) { 
imagelinethick($image,$q,0,$q,$size,$black,$thick = 1); 
imagelinethick($image,$size,$q,0,$q,$black,$thick = 1); 
}
/*
for($z = 0;$z <= $size;$z = $z + ($size/100)) { 
imagelinethick($image,$z,0,$z,$size,$black,$thick = 1); 
imagelinethick($image,$size,$z,0,$z,$black,$thick = 1); 
}
for($q = 0;$q <= $size;$q = $q + ($size/100)) { 
imagelinethick($image,$q,0,$q,$size,$black,$thick = 1); 
imagelinethick($image,$size,$q,0,$q,$black,$thick = 1); 
}
*/

/*     public void circleSym4(int xCenter, int yCenter, int radius, Color c)
    {
        int pix = c.getRGB();
        int x, y, r2;
        
        r2 = radius * radius;
        raster.setPixel(pix, xCenter, yCenter + radius);
        raster.setPixel(pix, xCenter, yCenter - radius);
        for (x = 1; x <= radius; x++) {
            y = (int) (Math.sqrt(r2 - x*x) + 0.5);
            raster.setPixel(pix, xCenter + x, yCenter + y);
            raster.setPixel(pix, xCenter + x, yCenter - y);
            raster.setPixel(pix, xCenter - x, yCenter + y);
            raster.setPixel(pix, xCenter - x, yCenter - y);
        }
    }

 */

$center = $size/2; 
$radius = 50; 
$r2 = $radius * $radius; 


if($_GET['a'] == "draw_image") { 
header("Content-type: image/jpg");

for($x = 0; $x <= $radius;$x++)  {
	$y = sqrt($r2 - $x*$x) + 0.5; 
	imagelinethick($image,$center+$x,$center+$y,$center+$x,$center+$y,$black,$thick = 5);
	imagelinethick($image,$center+$x,$center-$y,$center+$x,$center-$y,$black,$thick = 5);
	imagelinethick($image,$center-$x,$center+$y,$center-$x,$center+$y,$black,$thick = 5);
	imagelinethick($image,$center-$x,$center-$y,$center-$x,$center-$y,$black,$thick = 5);
	}

imagelinethick($image,$center,$center+$radius,$center,$center+$radius,$black,$thick = 5);
imagelinethick($image,$center,$center-$radius,$center,$center-$radius,$black,$thick = 5);
imagelinethick($image,$center,$center,$center,$center,$black,$thick = 5);

imagejpeg($image);
}
else { 

echo "<br>$center<br>"; 
echo '<img src="?a=draw_image">';
}

?>