Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
1
respuesta

[Proyecto] [Proyecto] Dibujando con el Mouse

Hola compañeros, les comparto mi codigo, tuve ciertas dificultades, pero me ayudaron mucho en Discord, gracias.

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

<script type="text/javascript">
    var pantalla = document.querySelector('canvas');
    var pincel = pantalla.getContext('2d');

    pincel.fillStyle = 'grey';
    pincel.fillRect(0, 0, 600, 400);

    var puedoDibujar = false;
    var colores = ["red", "green", "blue"];
    var posicion = 0;
    var A = colores.length;
    var i = 0;
    var xC = 0;
    var base = 50;
    var colorDefault = "blue";



    function dibujarCirculo(x,y, color) {

        if(puedoDibujar) {
            pincel.fillStyle = color;
            pincel.beginPath();
            pincel.arc(x, y, 5, 0, 2 * 3.14);
            pincel.fill();
        }

    }



    function dibujarCuadrado(x, y, base, color) {

        pincel.fillStyle = color;
        pincel.fillRect(x,y, base, base);
        pincel.strokeStyle = "black";
        pincel.strokeRect(x,y, base, base);
    }

    function paletaColores(){

        for(i = 0; i < A; i ++){
            dibujarCuadrado(xC, 0, base, colores[i]);
            xC = xC + 50;
        }
    }

    pantalla.onmousemove = dibujarCirculo;

    function habilitarDibujar() {

        puedoDibujar = true;
    }

    function deshabilitarDibujar() {

        puedoDibujar = false;
    }

    function areaDibujo(posicionX, posicionY){
        limiteX = (base * 3) + 10;
        limiteY = base + 10;
        if((posicionX >= 0 && posicionX < limiteX) && (posicionY >= 0 && posicionY < limiteY)){

            return false;

        } else{
            return true;
        }

    }

    function coordenadasMouse(evento){
        var x = evento.pageX - pantalla.offsetLeft;
        var y = evento.pageY - pantalla.offsetTop;

        if(areaDibujo(x,y)){
            dibujarCirculo(x,y,colorDefault);
        }
    }

    function cambiaColor(evento){
        var x = evento.pageX - pantalla.offsetLeft;
        var y = evento.pageY - pantalla.offsetTop;

        if(y > 0 && y <= base){
            //rojo
            if(x > 0 && x <= base){
                posicion = 0;
                colorDefault = colores[posicion];

            } else if(x > base && x <= (base*2)){
                posicion = 1;
                colorDefault = colores[posicion];
            } else if(x > (base*2) && x <= (base*3)){
                posicion = 2;
                colorDefault = colores[posicion];
            }
        }

    }

    pantalla.onmousemove = coordenadasMouse;

    pantalla.onmousedown = habilitarDibujar;

    pantalla.onmouseup = deshabilitarDibujar;

    paletaColores();

    pantalla.onclick = cambiaColor;

</script>
1 respuesta

¡Hola Ricardo!

Gracias por compartir tu código con nosotros. Veo que estás dibujando en un canvas y utilizando el mouse para hacerlo. Me parece muy interesante.

En cuanto a tu código, veo que tienes una función llamada areaDibujo que verifica si las coordenadas del mouse están dentro del área del canvas donde se puede dibujar. Me parece una buena práctica para evitar que el usuario dibuje fuera del área deseada.

También veo que tienes una función llamada cambiaColor que cambia el color del pincel según el cuadrado de color que se haya seleccionado en la paleta. Me parece una buena idea para darle al usuario la opción de elegir el color que desee.

En general, tu código se ve bien estructurado y fácil de entender. ¡Sigue así!

Si tienes alguna otra pregunta o necesitas ayuda adicional, no dudes en preguntar. ¡Espero haber ayudado y buenos estudios!

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