PHP Manual
后退 |  | 前进

# imagefilledarc

(PHP 4 >= 4.0.6, PHP 5)

imagefilledarc -- 画一椭圆弧且填充

## 说明

int 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）画一椭圆弧。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 // this example is provided by poxy at klam dot // 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); ?>`

> 注: 本函数添加于 PHP 4.0.6 且需要 GD 2.0.1。

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