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

[Sugerencia] Diseñando con el mouse.

<!DOCTYPE html>
<html lang="es-CO">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Diseñando con el mouse </title>
    <meta name="description" content="Permite dibujar lineas con clic sostenido del mouse y cambiar el color de la linea a dibujar." />
  </head>
  <body>
    <canvas width="600" height="400"></canvas>
    <script>

      let screen = document.querySelector('canvas');
      let pincel = screen.getContext('2d');

      let xClick;
      let YClick;

      let color = 'blue';
      const colors = ['red', 'green', 'blue'];

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

      let canDraw = false;

      function drawCircle(event) {

        xClick  = event.pageX - screen.offsetLeft;
        yClick = event.pageY - screen.offsetTop;

          if(canDraw && validArea() ) {  

                pincel.fillStyle = color;
                pincel.beginPath();
                pincel.arc(xClick, yClick, 5, 0, 2 * 3.14);
                pincel.fill();
          }

      }

      function validArea(){  //evitamos dibujar sobre las opciones de colores
        return (xClick > 155 || yClick > 55) ? true : false;
      }

      function drawColorSquares(){

        pincel.fillStyle = 'red';
        pincel.fillRect(0,0,50,50);

        pincel.fillStyle = 'green';
        pincel.fillRect(50,0,50,50);

        pincel.fillStyle = 'blue';
        pincel.fillRect(100,0,50,50);

      }

      drawColorSquares();

      function evaluateColorChange() {

        if( xClick <= 50 && yClick <= 50 ){
          color = colors[0];
        }else if( xClick <= 100 && yClick <= 50 ){
          color = colors[1];
        }else if( xClick <= 150 && yClick <= 50 ){
          color = colors[2];
        }

      }

      screen.onmousemove = drawCircle;

      function enableDraw() {
          canDraw = true;
      }

      function desabledDraw() {
          canDraw = false;
      }


      screen.onmousedown = enableDraw;

      screen.onmouseup = desabledDraw;

      screen.onclick = evaluateColorChange;

  </script>
  </body>
</html>
1 respuesta

¡Hola Arleyrivasgranado!

Gracias por compartir tu código con nosotros. Veo que estás trabajando en una aplicación que permite dibujar líneas con un clic sostenido del mouse y cambiar el color de la línea a dibujar. Me parece una idea interesante y útil para quienes necesitan hacer esquemas o dibujos rápidos en la web.

En cuanto a tu código, veo que estás utilizando el elemento canvas de HTML5 y el contexto 2D para dibujar en él. También estás capturando los eventos del mouse para detectar cuando se hace clic, se mueve o se suelta el botón del mouse. Además, estás evaluando la posición del clic para determinar si se ha seleccionado un color diferente.

Mi sugerencia sería agregar más funcionalidades a tu aplicación, como permitir al usuario elegir el grosor de la línea o borrar el dibujo completo. También podrías implementar una función para guardar el dibujo en una imagen o archivo.

¡Espero haber ayudado y buenos estudios!

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