Hola amigos!! Tengo un problema. Yo estoy dibujando una seria de lineas en php con la libreria GD. El Asunto es que cada una de esas lineas va a tener un color distinto de acuerdo a un estatus, los valores de los estatus lo tengo guardado en un arreglo q se llama $status4, donde este arreglo solo tiene 5 nombres de estatus diferentes, q son: Operativo, Planificado, Desincorporado, Al Aire, y Activo, Para cada estatus estoy tratando de pintar la linea de un color diferente, resulta q cuando el arreglo tiene en su contenido solo dos estatus: Operativo o Planificado se me dibujan las lineas correctamente con el color q le estoy dando, pero cuando el arreglo tiene mas de 2 estatus no se me dibuja la imagen, la verdad q no se porq eso sucede. La imagen es un archivo q se llama linea4.php q me dibuja el conjunto de lineas, les voy a colocar el archivo linea4.php para q lo revisen y me ayuden a determinar el problema:
<?php
$x1=$_GET['x1'];
$y1=$_GET['y1'];
$x2=$_GET['x2'];
$y2=$_GET['y2'];
$radios4=unserialize (urldecode ($_GET ['radi4']));
$status4=unserialize (urldecode ($_GET ['statu4']));
/*$col1=0;
$col2=0;
$col3=0;*/
$im = imagecreate(256,6000) or die("Error creando la imagen");
$fondo = imagecolorallocate($im, 255, 255, 255); // blanco
/*Dibujando las lineas de Radio-Radio que vienen de los nodos 2do tramo*/
if ($radios4!=0 and $radios4!="")
{
foreach($radios4 as $a => $va1)
{
$y11=80*$a;
$y1=10+$y11;
foreach($va1 as $i => $va2)
{
$resu1=pow($x2,2);
$resu2=pow($a,2);
$resu3=$resu1+$resu2;
$resu4=Sqrt($resu3);
$resu5=round($resu4);
/*Verifico el estatus del enlace antes de pintar la linea para establecer el color del enlace*/
switch($status4[$a][$i])
{
case 'Planificado':
//parametros para pintar la linea de color naranja=>StatusEnlace=>Planificado
$col1=255;
$col2=120;
$col3=30;
$linea = imagecolorallocate($im, $col1, $col2, $col3); //color de la linea de enlace
imageline($im,$x1,$y1,$resu5,$y2,$linea);
$y2=$y2+80;
break;
case 'Operativo':
//parametros para pintar la linea de color verde=>StatusEnlace=>Operativo
$col1=0;
$col2=200;
$col3=0;
$linea = imagecolorallocate($im, $col, $col2, $col3); //color de la linea de enlace
imageline($im,$x1,$y1,$resu5,$y2,$linea);
$y2=$y2+80;
break;
case 'Desincorporado':
//parametros para pintar la linea de color negro=>StatusEnlace=>Desincorporado
$col1=0;
$col2=0;
$col3=200;
$linea = imagecolorallocate($im, $col1, $col2, $col3); //color de la linea de enlace
imageline($im,$x1,$y1,$resu5,$y2,$linea);
$y2=$y2+80;
break;
case 'Al Aire':
//parametros para pintar la linea de color amarillo=>StatusEnlace=>Al Aire
$col1=255;
$col2=255;
$col3=0;
$linea = imagecolorallocate($im, $col1, $col2, $col3); //color de la linea de enlace
imageline($im,$x1,$y1,$resu5,$y2,$linea);
$y2=$y2+80;
break;
case 'Activo':
//parametros para pintar la linea de color amarillo=>StatusEnlace=>Al Aire
$col1=0;
$col2=255;
$col3=255;
$linea = imagecolorallocate($im, $col1, $col2, $col3); //color de la linea de enlace
imageline($im,$x1,$y1,$resu5,$y2,$linea);
$y2=$y2+80;
break;
}
}
}
}
header("Content-type: image/gif");
imagegif($im);
imagedestroy($im);
?>
El codigo me funciona pero solo cuando el arreglo $status4 contiene como maximo dos valores de estatus, cuando hay mas de tres valores distintos de estatus en el arreglo (Ejemplo: Operativo, Planificado, Desincorporado) no se me dibujan las lineas, por favor ayudenme con este problema, gracias...