(PHP 4 >= 4.0.6, PHP 5)
imagefilledarc — 画一椭圆弧且填充
$image
, int $cx
, int $cy
, int $w
, int $h
, int $s
, int $e
, int $color
, int $style
)
imagefilledarc() 在 image
所代表的图像中以
cx
,cy
(图像左上角为
0, 0)画一椭圆弧。成功时返回 TRUE
, 或者在失败时返回 FALSE
.w
和 h
分别指定了椭圆的宽和高,s
和
e
参数以角度指定了起始和结束点。style
可以是下列值按位或(OR)后的值:
IMG_ARC_PIE
IMG_ARC_CHORD
IMG_ARC_NOFILL
IMG_ARC_EDGED
IMG_ARC_PIE
和 IMG_ARC_CHORD
是互斥的;IMG_ARC_CHORD
只是用直线连接了起始和结束点,IMG_ARC_PIE
则产生圆形边界(如果两个都用,IMG_ARC_CHORD
生效)。IMG_ARC_NOFILL
指明弧或弦只有轮廓,不填充。IMG_ARC_EDGED
指明用直线将起始和结束点与中心点相连,和 IMG_ARC_NOFILL
一起使用是画饼状图轮廓的好方法(而不用填充)。
Example #1 创建一 3D 效果的饼状图
<?php
// create image
$image = imagecreatetruecolor(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: 此函数需要 GD 2.0.1 或更高版本(推荐 2.0.28 及更高版本)。
image
由图象创建函数(例如imagecreatetruecolor())返回的图象资源。
cx
x-coordinate of the center.
cy
y-coordinate of the center.
width
The arc width.
height
The arc height.
start
The arc start angle, in degrees.
end
The arc end angle, in degrees. 0° is located at the three-o'clock position, and the arc is drawn clockwise.
color
A color identifier created with imagecolorallocate().
style
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'.
成功时返回 TRUE
, 或者在失败时返回 FALSE
.
Example #2 Creating a 3D looking pie
<?php
// create image
$image = imagecreatetruecolor(100, 100);
// allocate some colors
$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: 此函数需要 GD 2.0.1 或更高版本(推荐 2.0.28 及更高版本)。