imagefilledarc
(PHP 4 >= 4.0.6)
imagefilledarc -- Draw a partial ellipse and fill it
Description
bool imagefilledarc ( resource image, int cx, int cy, int
w, int h, int s, int e, int color, int style)
imagefilledarc() draws a partial ellipse centered at cx,
cy (top left is 0, 0) in the image represented by image.
Returns TRUE on success or FALSE on failure. W and h specifies
the ellipse's width and height respectively while the start
and end points are specified in degrees indicated by the
s and e arguments. style is a bitwise OR of the following
possibilities:
IMG_ARC_PIE
IMG_ARC_CHORD
IMG_ARC_NOFILL
IMG_ARC_EDGED
IMG_ARC_PIE and IMG_ARC_CHORD are mutually exclusive; IMG_ARC_CHORD
just connects the starting and ending angles with a straight
line, while IMG_ARC_PIE produces a rounded edge. IMG_ARC_NOFILL
indicates that the arc or chord should be outlined, not
filled. IMG_ARC_EDGED, used together with IMG_ARC_NOFILL,
indicates that the beginning and ending angles should be
connected to the center - this is a good way to outline
(rather than fill) a 'pie slice'.
Example 1. Creating a 3D looking pie
<?php
// this example is provided by poxy at klam dot is
// create image
$image = imagecreate(100, 100);
// allocate some solors
$white = imagecolorallocate($image, 0xFF, 0xFF, 0xFF);
$gray = imagecolorallocate($image, 0xC0, 0xC0, 0xC0);
$darkgray = imagecolorallocate($image, 0x90, 0x90, 0x90);
$navy = imagecolorallocate($image, 0x00, 0x00, 0x80);
$darknavy = imagecolorallocate($image, 0x00, 0x00, 0x50);
$red = imagecolorallocate($image, 0xFF, 0x00, 0x00);
$darkred = imagecolorallocate($image, 0x90, 0x00, 0x00);
// make the 3D effect
for ($i = 60; $i > 50; $i--) {
imagefilledarc($image, 50, $i, 100, 50, 0, 45, $darknavy,
IMG_ARC_PIE);
imagefilledarc($image, 50, $i, 100, 50, 45, 75 , $darkgray,
IMG_ARC_PIE);
imagefilledarc($image, 50, $i, 100, 50, 75, 360 , $darkred,
IMG_ARC_PIE);
}
imagefilledarc($image, 50, 50, 100, 50, 0, 45, $navy, IMG_ARC_PIE);
imagefilledarc($image, 50, 50, 100, 50, 45, 75 , $gray,
IMG_ARC_PIE);
imagefilledarc($image, 50, 50, 100, 50, 75, 360 , $red,
IMG_ARC_PIE);
// flush image
header('Content-type: image/png');
imagepng($image);
imagedestroy($image);
?>
Note: This function was added in PHP 4.0.6 and requires
GD 2.0.1