1
resposta

Escolhendo cores!

Minha solução:

<canvas width="600" height="400"></canvas>
<p style="font-weight: bold"></p>
<h3>Escolha uma cor</h3>
<input type="color" />

<script>
  let p = document.querySelector("p");
  let input = document.querySelector("input");

  let tela = document.querySelector("canvas");
  let pincel = tela.getContext("2d");
  pincel.fillStyle = "grey";
  pincel.fillRect(0, 0, 600, 400);


  let raio = 10;
  let mouse = false;

  desenhaCirculo = (evento) => {
    // recebe o valor do input referente a cor
    let cor = input.value;
    if (mouse) {
      let x = evento.pageX - tela.offsetLeft;
      let y = evento.pageY - tela.offsetTop;
      pincel.fillStyle = cor;
      pincel.beginPath();
      pincel.arc(x, y, raio, 0, 2 * Math.PI);
      pincel.fill();
    }

    // aumenta o raio gradativamente
    if (evento.shiftKey && raio < 40) {
      raio += 0.1;
    }

    if (evento.altKey) {
      //diminuir o raio gradativamente
      raio -= 0.1;

      //limite de 10 para o raio
      if (raio < 10) {
        raio = 10;
      }
    }

    p.style.color = cor;

    // Informa a cor e o tamanho do raio
    p.innerHTML = `Cor em hexadecimal: ${cor} <br> Tamanho do pincel: ${raio.toFixed(
      0
    )}`;

    return evento;
  };

  tela.addEventListener("mousemove", desenhaCirculo);

  tela.onmousedown = () => {
    mouse = true;
  };

  tela.onmouseup = () => {
    mouse = false;
  };
</script>
1 resposta

Perfeito!