Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Solucionado (ver solución)
Solucionado
(ver solución)
1
respuesta

Solucion complicada a Cambiando de color

Bueno comparto mi solución al ejercicio Cambiando de color. Como siempre lo intento hacer antes de ver la solucion del instructor, me fui a comparar el color asignado al pincel con los colores de la lista, como en un principio no hacían nada los if si comparaba con "blue", imprimi en un alert el pincel.fillStyle y me di cuenta que regresan un valor hexadecimal, asi que modifique la lista con los valores hexa de los colores y ya en la funcion cambiar color hice las comparaciones dentro de un for.

Ya después vi la solución y me rei un rato pues era mas fácil nomas ir cambiando los indices. Que les parece?

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

<script>

    var pantalla = document.querySelector("canvas");
    var pincel = pantalla.getContext("2d"); 
    var colors = ["#0000ff", "#ff0000", "#008000"];   //Se agrega en la lista los valores de lod colores en hexadecimal para facilitar las comparaciones
    pincel.fillStyle = "grey";
    pincel.fillRect(0,0,600,400); 
    pincel.fillStyle = colors[0];

    function dibujarCirculo(evento){
        var x = evento.pageX - pantalla.offsetLeft;
        var y = evento.pageY - pantalla.offsetTop;    
        pincel.beginPath();
        pincel.arc(x,y,10,0,2*3.14);
        pincel.fill();
        console.log(x + "," + y);  
        //alert("Color: " + pincel.fillStyle);      
    }   

    function alterarColor(evento) {

        for (var i = 0; i < colors.length; i++) {
            if(pincel.fillStyle == colors[i] && (i < colors.length-1 )){
                pincel.fillStyle = colors[i+1];
                break
            }else {
                if(pincel.fillStyle == colors[colors.length - 1]){
                     pincel.fillStyle = colors[0];
                }
            }

        }

        //Esta parte hace lo mismo pero no funciona en el caso de agregar mas colores
        /*if(pincel.fillStyle == "#0000ff"){
            pincel.fillStyle = colors[1]; 
        } else if(pincel.fillStyle == "#ff0000") {
            pincel.fillStyle = colors[2]; 
        } else{
            pincel.fillStyle = colors[0];
        } */

        console.log(evento);
        return false;
    }

    pantalla.onclick = dibujarCirculo;
    pantalla.oncontextmenu = alterarColor;

</script> 
1 respuesta
solución!

Hola Angel, espero que estés bien.

Gracias por la dedicación y felicidades por el avance en tus estudios en lógica de programación, espero que nuestros cursos sean de gran aporte para tu desarrollo profesional y personal.

Para agilizar el tiempo de respuesta en caso de dudas relacionadas con los cursos, estamos priorizando el foro para postear dudas.

En caso de que desees compartir tus ejercicios o actividades, dispusimos en Discord un canal exclusivo para ese fin.

Te dejo este link que muestra donde puedes compartir tus actividades y si necesitas ayuda acerca del contenido de los cursos, aquí estaremos. :)

¡Saludos!

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