Aqui les dejo mi proyecto, ademas agregue un boton para borrar pantalla sin necesidad de actualizar la pantalla.
< canvas id = "lienzo"
width = "600"
height = "400" > < /canvas>
<
button onclick = "borrar()" > Borrar < /button>
<
script >
var pantalla = document.querySelector('#lienzo');
var pincel = pantalla.getContext('2d');
pincel.fillStyle = 'lightgrey';
pincel.fillRect(0, 0, 600, 400);
var puedoDibujar = false;
var colorPincel = 'blue';
function dibujarCirculo(evento) {
if (puedoDibujar) {
var x = evento.pageX - pantalla.offsetLeft;
var y = evento.pageY - pantalla.offsetTop;
pincel.fillStyle = colorPincel;
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;
// Paleta de colores
var paleta = document.createElement('div');
paleta.style.width = '50px';
paleta.style.height = '150px';
paleta.style.position = 'absolute';
paleta.style.top = '10px';
paleta.style.left = '10px';
paleta.style.border = '1px solid black';
var colorAzul = document.createElement('div');
colorAzul.style.width = '50px';
colorAzul.style.height = '50px';
colorAzul.style.background = 'blue';
var colorVerde = document.createElement('div');
colorVerde.style.width = '50px';
colorVerde.style.height = '50px';
colorVerde.style.background = 'green';
var colorRojo = document.createElement('div');
colorRojo.style.width = '50px';
colorRojo.style.height = '50px';
colorRojo.style.background = 'red';
paleta.appendChild(colorAzul);
paleta.appendChild(colorVerde);
paleta.appendChild(colorRojo);
document.body.appendChild(paleta);
// Lógica para cambiar el color del pincel
colorAzul.onclick = function() {
colorPincel = 'blue';
};
colorVerde.onclick = function() {
colorPincel = 'green';
};
colorRojo.onclick = function() {
colorPincel = 'red';
};
function borrar() {
pincel.clearRect(0, 0, pantalla.width, pantalla.height);
} <
/script>