<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>