Advertisement
Guest User

Generar gráfico a partir de fibonacci con PHP

a guest
Aug 4th, 2015
257
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 2.94 KB | None | 0 0
  1. <?
  2. //Creado por Komtec1
  3. //komtec1 [ at ] gmail [ dot ]
  4. //Tamaño del lienzo
  5. //Generar gráfico a partir de fibonacci con PHP
  6. $a=12000;
  7. $b=6150;
  8.  
  9. //Tamaño del cuadro inicial
  10. $cuadroInicial = 10;
  11.  
  12. //definimos el lienzo
  13. $lienzo = imagecreatetruecolor($a, $b);
  14.  
  15. //se definen los valores iniciales de la posición, se toma el centro
  16. $x1Inicial = $a/2-($cuadroInicial/2);
  17. $y1Inicial = $b/2-($cuadroInicial/2);
  18. $x2Inicial = $a/2+($cuadroInicial/2);
  19. $y2Inicial = $b/2+($cuadroInicial/2);
  20.  
  21. //para inicializar la secuencia de fibonacci
  22. $n1=1;
  23. $n2=0;
  24.  
  25. $espaciado = 10;
  26.  
  27.  
  28. //Asignamos el sentido inicial
  29. $sentido = 'inicial';
  30.  
  31.     for($i=0;$i<=13;$i++)
  32.         {
  33.         $suma = $n1+$n2;
  34.         $n1=$n2;
  35.         $n2=$suma;
  36.         #echo $suma . " ";
  37.  
  38.         $ti = $cuadroInicial*$suma; //Esta variable lleva de forma correcta el tamaño del cuadrado que se genera
  39.         $tiValores[$i] = $cuadroInicial*$suma;
  40.         $color = imagecolorallocate($lienzo, rand(10,210), rand(10,210), rand(10,210));
  41.  
  42.  
  43.         $x1anterior = $x1Inicial;
  44.         $x2anterior = $x2Inicial;
  45.         $y1anterior = $y1Inicial;
  46.         $y2anterior = $y2Inicial;
  47.  
  48.         ///*
  49.         // para definir en que sentido aumenta el cuadrado
  50.         if ($sentido == 'derecha' && $i<2)
  51.         {
  52.         $x1Inicial = $x1Inicial+$ti; //caso derecha primer iteración
  53.         $x2Inicial = $x1Inicial+$ti; //caso derecha primer iteración
  54.         }
  55.         else
  56.         {
  57.             if ($sentido == 'derecha')
  58.             {
  59.                 $x1Inicial = $x2anterior;
  60.                 $x2Inicial = $x1Inicial+$ti;
  61.                 $y1Inicial = $y2anterior;
  62.                 $y2Inicial = $y1Inicial-$ti;
  63.             }
  64.             elseif ($sentido == 'arriba')
  65.             {
  66.                 //reacomodando una variable para que vuelva a ser el eje guía
  67.                 if ($i>3)
  68.                 $y1anterior=$y2anterior;
  69.  
  70.                 $x1Inicial = $x2anterior;
  71.                 $x2Inicial = $x1Inicial-$ti;
  72.                 $y1Inicial = $y1anterior;
  73.                 $y2Inicial = $y1Inicial-$ti;
  74.             }
  75.             elseif ($sentido == 'izquierda')
  76.             {
  77.                 $x1Inicial = $x2anterior;
  78.                 $x2Inicial = $x1Inicial-$ti;
  79.                 $y1Inicial = $y2anterior;
  80.                 $y2Inicial = $y1Inicial+$ti;
  81.             }
  82.             elseif ($sentido == 'abajo')
  83.             {
  84.                 $x1Inicial = $x2anterior;
  85.                 $x2Inicial = $x1Inicial+$ti;
  86.                 $y1Inicial = $y2anterior;
  87.                 $y2Inicial = $y1Inicial+$ti;
  88.             }
  89.         }
  90.  
  91.         imagefilledrectangle($lienzo, $x1Inicial, $y1Inicial, $x2Inicial, $y2Inicial, $color);
  92.         #imagerectangle($lienzo, $x1Inicial, $y1Inicial, $x2Inicial, $y2Inicial, $color);
  93.  
  94.         imagestring($lienzo, 5, 5, $espaciado,  "Iteracion $i - x1: $x1Inicial, x2: $x2Inicial, y1: $y1Inicial, y2: $y2Inicial $sentido suma: $suma cuadroinicial: $ti", $color);
  95.         $espaciado = $espaciado+20;
  96.             //Para definir el sentido de la imagen
  97.             if ($sentido=='inicial')
  98.                 $sentido = 'derecha';
  99.             elseif ($sentido=='derecha')
  100.                 $sentido = 'arriba';
  101.             elseif ($sentido=='arriba')
  102.                 $sentido = 'izquierda';
  103.             elseif ($sentido == 'izquierda')
  104.                 $sentido = 'abajo';
  105.             else
  106.                 $sentido = 'derecha';
  107.  
  108.  
  109.         // Imprimir y liberar memoria
  110.  
  111.     }
  112.     header('Content-Type: image/jpeg');
  113.  
  114.     imagejpeg($lienzo);
  115.     imagedestroy($lienzo);
  116.  
  117. ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement