Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Essa foi bem difícil. Principalmente porque as aulas em vídeo não estão abrindo e já tentei tudo!

<meta charset="UTF-8">
<canvas width = "600" height = "400"></canvas>
<button>eliminar</button>

<script>

    var tela = document.querySelector("canvas");
    var apagar = document.querySelector("button");
    var pincel = tela.getContext("2d");

    var cores = ["blue", "red", "green"];
    var i = 0;

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

    function desenhaCirculo(evento){

        var x = evento.pageX - tela.offsetLeft;
        var y = evento.pageY - tela.offsetTop;

        pincel.fillStyle = cores[i];
        pincel.beginPath();
        pincel.arc(x, y, 10, 0, 2 * 3.14);
        pincel.fill();

        console.log("Posição do clique " + "(" + x + "," + y + ")");
    }

    function mudaCor(){

        i++;

        if(i >= cores. length){

            i = 0;
        }

        return false;        
    }

    function apagaTudo(){

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

    }

    tela.onclick = desenhaCirculo;
    tela.oncontextmenu = mudaCor;
    apagar.onclick = apagaTudo;

</script>
2 respostas
solução!

Olá, levei bastante tempo, mas acabei fazendo desta forma:

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

    var tela = document.querySelector ('canvas');
    var pincel = tela.getContext ('2d');

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

    var cores = ['blue', 'red', 'green'];
    var i = 0

                function desenhaCirculoAoClicar (evento) {

                var x = evento.pageX - tela.offsetLeft;
                var y = evento.pageY - tela.offsetTop;

                pincel.fillStyle = cores[i];
                pincel.beginPath ();
                pincel.arc (x, y, 10, 0, 2* 3.14);
                pincel.fill ();

                console.log (x + ', ' + y)

            }
    tela.onclick = desenhaCirculoAoClicar;

            function mudaCor () {
                i++
                    if (i>=3){
                        i = 0
                    }                            
            }    
    tela.oncontextmenu = mudaCor;    




</script>

Legal. Bem mais enxuto! Muito obrigado pela dica de outro código.