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

[Proyecto] Diseñando con el mouse

Ingrese aquí la descripción de esta imagen para ayudar con la accesibilidad

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

<script>
  var pantalla = document.querySelector('canvas');
  var pincel = pantalla.getContext('2d');

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

  var puedoDibujar = false;
  var colorSeleccionado = 0; // Índice del color inicial seleccionado

  var colores = ["red", "green", "blue"];
  var tamañoCuadro = 45;
  var separacionCuadros = 5;
  var barraColoresY = 10;

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

    if (puedoDibujar) {
      pincel.fillStyle = colores[colorSeleccionado];
      pincel.beginPath();
      pincel.arc(x, y, 5, 0, 2 * Math.PI);
      pincel.fill();
    }
  }

  pantalla.onmousemove = dibujarCirculo;

  function habilitarDibujar() {
    puedoDibujar = true;
  }

  function deshabilitarDibujar() {
    puedoDibujar = false;
  }

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

  function crearCuadro(x, y, indiceColor) {
    pincel.fillStyle = colores[indiceColor];
    pincel.beginPath();
    pincel.rect(x, y, tamañoCuadro, tamañoCuadro);
    pincel.fill();
  }

  function crearBarraColores() {
    var x = 10;

    for (var i = 0; i < colores.length; i++) {
      crearCuadro(x, barraColoresY, i);
      x += tamañoCuadro + separacionCuadros;
    }
  }

  crearBarraColores();

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

    if (y >= barraColoresY && y <= barraColoresY + tamañoCuadro) {
      var indiceColor = Math.floor(x / (tamañoCuadro + separacionCuadros));

      if (indiceColor >= 0 && indiceColor < colores.length) {
        colorSeleccionado = indiceColor;
      }
    }
  }

  pantalla.onclick = cambiarColor;
</script>
1 respuesta

Hola Jessica, ¡espero que estés bien!

Gracias por compartir tu solución, felicitaciones! Espero que estés disfrutando del contenido y las actividades!

Anexo: el foro se centra en las dudas de contenido y actividad, ¡pero apreciamos sus resultados! Te sugiero que compartas tus resultados en tu grupo en lo servidor en Discord.

Mucho éxito en todo lo que te propongas y si tienes alguna duda aquí estaremos para apoyarte.

¡Vamos juntos!

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