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. Parece que estás trabajando en un proyecto de dibujo con el mouse en HTML5 Canvas. Me alegra saber que pudiste superar tus dificultades con la ayuda de la comunidad en Discord.

En cuanto a tu código, veo que has definido varias funciones para dibujar formas y cambiar el color del lápiz. También has creado una paleta de colores para que el usuario pueda elegir el color que desea utilizar. Me parece una buena idea.

Sin embargo, noté que no has definido una función para borrar lo que se ha dibujado. Sería útil agregar una función para que el usuario pueda borrar su dibujo si desea hacer cambios.

En general, creo que tu código es un buen comienzo para un proyecto de dibujo con el mouse. ¡Sigue adelante y sigue mejorando!

Espero haber ayudado y buenos estudios.

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