PHP 手册
后退 |  | 前进

# imagefilledarc

(PHP 4 >= 4.0.6, PHP 5)

imagefilledarc -- 画一椭圆弧且填充

## 说明

bool imagefilledarc ( resource 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）后的值：

1. `IMG_ARC_PIE`

2. `IMG_ARC_CHORD`

3. `IMG_ARC_NOFILL`

4. `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` 一起使用是画饼状图轮廓的好方法（而不用填充）。

例子 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);
?>`

> 注: 本函数需要 GD 2.0.1 或更高版本。

后退 | 起点 | 前进
imagefill | 上一级 | imagefilledellipse