ProgramacionWeb - Ayuda al webmaster
No has iniciado sesión
Conectar al sistema | Registrar usuario
Cursos Cuestionarios Curso de PHP Capítulo
 
10 votos
Dibujo de arcos y elipses con GD
 
 
Una elipse es una sección cónica, una especie de huevo, y un caso particular de elipse es el círculo, por otra parte, un arco es una curva entre dos puntos (elipse no completa)

El dibujo de elipses y arcos con GD, es muy parecido al dibujo de rectángulos, salvo que en lugar de indicar las esquinas del rectángulo, debemos indicar el centro , la altura, el ancho y en el caso de los arcos, el ángulo inicial y final.

ArribaTabla de contenido

ArribaDibujo de elipses y círculos

Usando la función imageellipse o imagefilledellipse (para rellenarla de color), podemos generar una elipse de la siguiente manera:
 
000 
imageellipse ($im, $cx, $cy, $an, $al, $col);
 
Donde cada variable pasada a la función significa:
$im - Es el identificado de la imagen que hemos creado cómo se explica en este artículo
$cx - Coordenada horizontal del centro de la elipse
$cy - Coordenada vertical del centro de la elipse
$an - Ancho de la elipse
$al - Altura de la elipse
$col - Es el color de la linea (o relleno) como se explica también en este artículo
Veamos un ejemplo de cómo generar un caso particular de elipse, un círculo de 100 x 100 pixels (centrado en 50,50):
 
000 
001 
002 
003 
004 
005 
006 
007 
008 
009 
010 
011 
012 
<?php 
$im 
= @imagecreate(101101) 
or die(
"Error creando la imagen")
$fondo imagecolorallocate($im255255255)// blanco 
$linea imagecolorallocate($im000)// negro 
 
// Dibujamos la elipse 
imageellipse($im5050100100$linea)
 
header("Content-type: image/png")
imagepng($im)
imagedestroy($im)
?>
 
Y este será el resultado (que sería relleno de color negro de haber usado imagefilledellipse):

ArribaDibujo de arcos

Para dibujar un arco, usaremos la función imagearc o imagefilledarc, que tiene la misma sintaxis que la función anterior salvo que añade el ángulo inicial y el final:
 
000 
imageellipse ($im, $cx, $cy, $an, $al, $in, $fi, $col);
 
Donde cada variable pasada a la función significa:
$im - Es el identificado de la imagen que hemos creado cómo se explica en este artículo
$cx - Coordenada horizontal del centro del arco
$cy - Coordenada vertical del centro del arco
$an - Ancho del arco
$al - Altura del arco
$in - Ángulo inicial del arco
$fi - Ángulo final del arco
$col - Es el color de la linea (o relleno) como se explica también en este artículo
Veamos un ejemplo de cómo generar un arco:
 
000 
001 
002 
003 
004 
005 
006 
007 
008 
009 
010 
011 
012 
<?php 
$im 
= @imagecreate(101101) 
or die(
"Error creando la imagen")
$fondo imagecolorallocate($im255255255)// blanco 
$linea imagecolorallocate($im000)// negro 
 
// Dibujamos el arco 
imagearc($im505010010090180$linea)
 
header("Content-type: image/png")
imagepng($im)
imagedestroy($im)
?>
 
Y este será el resultado (que sería relleno de color negro de haber usado imagefilledarc):
 
Anterior y siguiente
Dibujo de rectá...
 
Comentarios
Este artículo no ha sido comentado hasta el momento
 
Resolver dudas
Si tienes problemas o dudas con el contenido del artículo no dudes a preguntar en los foros de PHP de Programación Web indicando el artículo al que te refieres.