note 15229 added to function.imagearc

From: Date: Sun, 02 Sep 2001 13:56:57 +0000
Subject: note 15229 added to function.imagearc
Groups: php.notes 
Request: Send a blank email to php-notes+get-17532@lists.php.net to get a copy of this message
To fill an arc (DiameterX != DiameterY): <? function imagefilledarc($Image, $CenterX, $CenterY, $DiameterX, $DiameterY, $Start, $End, $Color) { // To draw the arc imagearc($Image, $CenterX, $CenterY, $DiameterX, $DiameterY, $Start, $End, $Color); // To close the arc with 2 lines between the center and the 2 limits of the arc $x = $CenterX + (cos(deg2rad($Start))*($DiameterX/2)); $y = $CenterY + (sin(deg2rad($Start))*($DiameterY/2)); imageline($Image, $x, $y, $CenterX, $CenterY, $Color); $x = $CenterX + (cos(deg2rad($End))*($DiameterX/2)); $y = $CenterY + (sin(deg2rad($End))*($DiameterY/2)); imageline($Image, $x, $y, $CenterX, $CenterY, $Color); // To fill the arc, the starting point is a point in the middle of the closed space $x = $CenterX + (cos(deg2rad(($Start+$End)/2))*($DiameterX/4)); $y = $CenterY + (sin(deg2rad(($Start+$End)/2))*($DiameterY/4)); imagefilltoborder($Image, $x, $y, $Color, $Color); } ?> To close the arc with 2 lines (DiameterX != DiameterY): <? function imagenofilledarc($Image, $CenterX, $CenterY, $DiameterX, $DiameterY, $Start, $End, $Color) { // To draw the arc imagearc($Image, $CenterX, $CenterY, $DiameterX, $DiameterY, $Start, $End, $Color); // To close the arc with 2 lines between the center and the 2 limits of the arc $x = $CenterX + (cos(deg2rad($Start))*($DiameterX/2)); $y = $CenterY + (sin(deg2rad($Start))*($DiameterY/2)); imageline($Image, $x, $y, $CenterX, $CenterY, $Color); $x = $CenterX + (cos(deg2rad($End))*($DiameterX/2)); $y = $CenterY + (sin(deg2rad($End))*($DiameterY/2)); imageline($Image, $x, $y, $CenterX, $CenterY, $Color); } ?> An example: <? $destImage = imagecreate( 216, 152 ); $c0 = imagecolorallocate( $destImage, 0, 255, 255 ); $c1 = imagecolorallocate( $destImage, 0, 0, 0 ); $c2 = imagecolorallocate( $destImage, 255, 0, 0 ); ImageFilledRectangle ( $destImage, 0, 0, 216, 152, $c0 ); imagefilledarc( $destImage, 108, 76, 180, 80, 0, 130, $c1 ); imagenofilledarc( $destImage, 108, 76, 180, 80, 0, 130, $c2 ); header("content-type: image/PNG"); ImagePNG( $destImage ); ImageDestroy( $destImage ); ?> http://www.php.net/manual/hu/function.imagearc.php

« previous php.notes (#17532) next »