imagefilledarc

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8)

imagefilledarcDibuja un arco parcial y lo rellena

Descripción

imagefilledarc(
    GdImage $image,
    int $center_x,
    int $center_y,
    int $width,
    int $height,
    int $start_angle,
    int $end_angle,
    int $color,
    int $style
): bool

Dibuja un arco parcial, centrado en las coordenadas especificadas en la imagen proporcionada.

Parámetros

image

Un recurso image, es devuelto por una de las funciones de creación de imágenes, como imagecreatetruecolor().

center_x

X: coordenada del centro.

center_y

Y: coordenada del centro.

width

El ancho del arco.

height

La altura del arco.

start_angle

El ángulo de inicio del arco, en grados.

end_angle

El ángulo de fin del arco, en grados. 0° se encuentra en la posición de las 3 en punto en un reloj, y el arco se dibuja en el sentido de las agujas del reloj.

color

Un identificador de color creato con imagecolorallocate().

style

Un campo de bytes, combinado con el operador OR:

  1. IMG_ARC_PIE
  2. IMG_ARC_CHORD
  3. IMG_ARC_NOFILL
  4. IMG_ARC_EDGED
IMG_ARC_PIE y IMG_ARC_CHORD son mutuamente excluyentes; IMG_ARC_CHORD solo conecta los ángulos de inicio y fin con una línea recta, mientras que IMG_ARC_PIE produce una línea curva. IMG_ARC_NOFILL indica que el arco (o cuerda) debe ser dibujado pero no rellenado. IMG_ARC_EDGED, usado junto con IMG_ARC_NOFILL, indica que los ángulos de inicio y fin deben ser conectados al centro. Esta función es recomendada para crear gráficos de tipo pastel.

Valores devueltos

Devuelve true en caso de éxito o false en caso de error.

Historial de cambios

Versión Descripción
8.0.0 image expects a GdImage instance now; previously, a valid gd resource was expected.

Ejemplos

Ejemplo #1 Creación de un gráfico de pastel en 3D

<?php

// Creación de la imagen
$image = imagecreatetruecolor(100, 100);

// Asignación de algunas colores
$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);

// Creación del efecto 3D
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);

// Mostrar la imagen
header('Content-type: image/png');
imagepng($image);
?>

El resultado del ejemplo sería algo similar a:

Visualización del ejemplo: Creación de un gráfico 3D