Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
4
respuestas

[Sugerencia] Les dejo mi solucion

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

<script>


    var pantalla = document.querySelector('canvas');
    var pincel = pantalla.getContext('2d');
    pincel.fillStyle = 'grey';
    pincel.fillRect(0, 0, 600, 400);
    var paletaColores = ["red", "green","blue"]

    var puedoDibujar = false;

    function dibujarCuadro (x,y,color){


        pincel.fillStyle = color
        pincel.fillRect(x,y,50,50)


    }


    function dibujarCirculo(evento) {

    var x = evento.pageX - pantalla.offsetLeft;
    var y = evento.pageY - pantalla.offsetTop;  

        if(puedoDibujar) {

            pincel.beginPath();
            pincel.arc(x, y, 5, 0, 2 * 3.14);
            pincel.fill();


        }


        if(x >= 0 && x <= 50 && y >= 0 && y <= 50 ){
            pincel.fillStyle = paletaColores [0]
        }

        if(x >= 51 && x <= 100 && y >= 0 && y <= 50 ){
            pincel.fillStyle = paletaColores [1]
        }

        if(x >= 101 && x <= 150 && y >= 0 && y <= 50 ){
            pincel.fillStyle = paletaColores [2]
        }

        if(x >= 0 && x <= 150 && y >= 0 && y <= 50 ) {

            puedoDibujar =  false
            pantalla.onmousedown = deshabilitarDibujar;

        }

        else {
           pantalla.onmousedown = habilitarDibujar;
        }   



    }    

    pantalla.onmousemove = dibujarCirculo;

    function habilitarDibujar() {

        puedoDibujar = true;
    }

    function deshabilitarDibujar() {

        puedoDibujar = false;
    }

    //pantalla.onmousedown = habilitarDibujar;
    pantalla.onmouseup = deshabilitarDibujar;


    function cuadros () {
    dibujarCuadro(0,0,paletaColores[0])
    dibujarCuadro(50,0,paletaColores[1])
    dibujarCuadro(100,0,paletaColores[2])
}

    cuadros()

</script>
4 respuestas

Wow Brian copie tu codigo y es muy sencillo y funcional, me gusto mucho. Lo he leido como 5 veces a ver si poco a poco domino esto porque no me salio el ejercicio. Esta muy complejo para mi nivel pero tengo una duda porque nombraste dos veces pantalla.onmousemove dos veces casi corridas al final del codigo? Eso es lo unico que me tiene confundido.

Hola angel, se me olvidó borrar jaja, pero si te das cuenta //pantalla.onmousedown = habilitarDibujar; tiene // eso quiere decir que es un comentario por lo tanto no forma parte del código jaja. Igualmente muchas gracias por tu comentario, y tranquilo que parece difícil pero la verdad es solo cuestión de lógica, animos !!

Hay una cosa Brian, cuando seleccionas el color si te pones a dibujar dando vueltas y pasas por encima de la paleta de colores, al tocar los colores por lo menos en mi computadora se marca un solo puntito encima del color lo cual no deberia ser y luego automaticamente el color vuelve para el azul (luego que cancela el patron por haber entrado sobre la paleta de colores). No se si te diste cuenta pero echale un ojo para que veas.

Oye cierto, a ver si lo puedo solucionar. Gracias! :)