imagefilledarc

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

imagefilledarcDesenha um arco parcial preenchido

Descrição

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

Desenha um arco parcial centrado na coordenada especificada na imagem fornecida em image.

Parâmetros

image

Um objeto GdImage, retornado por uma das funções de criação de imagem, como imagecreatetruecolor().

center_x

Coordenada x do centro.

center_y

Coordenada y do centro.

width

Largura do arco.

height

Altura do arco.

start_angle

O ângulo inicial do arco, em graus.

end_angle

O ângulo final do arco, em graus. 0° está localizado na posição 3 horas do relógio, e o arco é desenhado no sentido horário.

color

Um identificador de cor criado com imagecolorallocate().

style

Um OR binário das seguinte possibilidades:

  1. IMG_ARC_PIE
  2. IMG_ARC_CHORD
  3. IMG_ARC_NOFILL
  4. IMG_ARC_EDGED
IMG_ARC_PIE e IMG_ARC_CHORD são mutualmente exclusivas; IMG_ARC_CHORD apenas conecta os ângulos inicial e final com uma linha reta, enquanto que IMG_ARC_PIE produz uma borda arredondada. IMG_ARC_NOFILL indica que o arco ou corda devem ser contornados, não preenchidos. IMG_ARC_EDGED, usado em conjunto com IMG_ARC_NOFILL, indica que o ângulo inicial e o final devem ser conectados ao centro - é uma boa forma de se contornar (em vez de preencher) uma 'fatia de pizza'.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão Descrição
8.0.0 O parâmetro image agora espera uma instância de GdImage; anteriormente, um resource gd válido era esperado.

Exemplos

Example #1 Criando uma pizza em 3D

<?php

// cria a imagem
$image = imagecreatetruecolor(100, 100);

// aloca algumas cores
$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);

// faz o efeito 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);


// descarrega a imagem
header('Content-type: image/png');
imagepng($image);
imagedestroy($image);
?>

O exemplo acima produzirá algo semelhante a:

Saída do exemplo: Criando uma pizza em 3D