2
respuestas

Problemas con function

Trate de hacer la flor de dos maneras. Una circulo por circulo y me salio bien(en el codigo esta todo comentado) y luego lo quise hacer utilizando una funcion que me dibuje de una vez los 5 circulos, pero no logro hacerlo. Me podrian decir donde esta mi error del comando? Les dejo todo el código(las dos formas) Aguardo sus comentarios Gracias

 <canvas width="600" height="400"></canvas>

<script>

     function dibujarCirculo() {

           var pantalla = document.querySelector("canvas");
           var pincel = pantalla.getContext("2d");
                pincel.fillStyle = "lightgray";
                pincel.fillRect(0, 0, 600, 400);

                dibujarCirculo(300,200,50,"red");
                dibujarCirculo(300,100,50,"yellow");
                dibujarCirculo(300,300,50,"blue");
                dibujarCirculo(400,200,50,"black");
                dibujarCirculo(200,200,50,"orange");

             }

             dibujarCirculo();

             </script>

y la otra forma....

<canvas width="600" height="400"></canvas>

<script>


    var pantalla = document.querySelector("canvas");
    var pincel = pantalla.getContext("2d");


    pincel.fillStyle = "lightgray";
    pincel.fillRect(0, 0, 600, 400);



        pincel.fillStyle = "red";
        pincel.beginPath();
        pincel.arc(300, 200, 50, 0, 2*3.14);
        pincel.fill();

        pincel.fillStyle = "yellow";
        pincel.beginPath();
        pincel.arc(300, 100, 50, 0, 2*3.14);
        pincel.fill();

        pincel.fillStyle = "blue";
        pincel.beginPath();
        pincel.arc(300, 300, 50, 0, 2*3.14);
        pincel.fill();

        pincel.fillStyle = "black";
        pincel.beginPath();
        pincel.arc(400, 200, 50, 0, 2*3.14);
        pincel.fill();

        pincel.fillStyle = "orange";
        pincel.beginPath();
        pincel.arc(200, 200, 50, 0, 2*3.14);
        pincel.fill();




</script>
2 respuestas

Hola Sergio

Este error se debe a que la pila de ejecución de JavaScript, ha alcanzado su tamaño máximo, normalmente esto ocurre cuando la aplicación entra en una especie de bucle infinito.

Esto significa que, estás llamando a la función dibujarCirculo() que a su vez llama se llama a sí misma, y así sucesivamente, hasta que alcanza el límite de la pila de llamadas.

Te recomiendo crear una función que dibuje cada circulo por separado para evitar ese llamada infinita

Si este post te ayudó, por favor, marca como solucionado ✓. Continúa con tus estudios

Hola Sergio,

El problema es que estas invocando a la funcion dibujarCirculo de dos maneras diferentes:

  1. Una sin argumentos
  2. Con argumentos

Es por eso que no realiza los dibujos

Por otro lado, es recomendable no llamar a las funciones de esa manera porque si corriges la definicion de la function dibujarCirculos(.......), vas a entrar en un modo que se llama Recusividad, ya que se estarian llamando la funcion asi misma y no posee ninguna forma de salir y se te transformaria en un lazo infinito.

Espero haberte ayuda,

Saludos