<canvas width="600" height="400"></canvas>
<script>
var pantalla = document.querySelector('canvas');
var pincel = pantalla.getContext('2d');
pincel.fillStyle = 'grey';
pincel.fillRect(0, 0, 600, 400);
var paletaX = 0;
var paletaY = 0;
var anchoPaleta = 50;
var altoPaleta = 50;
var color = ["red", "green", "blue"];
var colorElegido;
var puedoDibujar = false;
function dibujarCirculo(evento) {
if(puedoDibujar) {
var x = evento.pageX - pantalla.offsetLeft;
var y = evento.pageY - pantalla.offsetTop;
if( x<=paletaX+(anchoPaleta*3) && y<=paletaY+altoPaleta ){
alert ("No mor, aqui no dibujas...");
}else{
pincel.fillStyle = colorElegido;
pincel.beginPath();
pincel.arc(x, y, 5, 0, 2 * 3.14);
pincel.fill();
}
}
}
function habilitarDibujar() {
puedoDibujar = true;
}
function deshabilitarDibujar() {
puedoDibujar = false;
}
function crearPaleta(paletaX,paletaY,ancho,alto,colorPaleta){
pincel.fillStyle = colorPaleta;
pincel.beginPath();
pincel.fillRect(paletaX, paletaY, ancho, alto);
pincel.fill();
}
function dibujarPaleta(paletaX, paletaY, anchoPaleta, altoPaleta, colorPaleta){
crearPaleta(paletaX,paletaY,anchoPaleta,altoPaleta,colorPaleta[0]);
crearPaleta((paletaX+anchoPaleta),paletaY,anchoPaleta,altoPaleta,colorPaleta[1]);
crearPaleta((paletaX+(anchoPaleta*2)),paletaY,anchoPaleta,altoPaleta,colorPaleta[2]);
}
function elegirColorPincel(evento){
var xx = evento.pageX - pantalla.offsetLeft;
var yy = evento.pageY - pantalla.offsetTop;
if(xx>paletaX && xx<(paletaX+anchoPaleta) && yy>paletaY && yy<(paletaY+altoPaleta)){
colorElegido = color[0];
}
if(xx>(paletaX+anchoPaleta) && xx<paletaX+(anchoPaleta*2) && yy>paletaY && yy<(paletaY+altoPaleta)) {
colorElegido= color[1];
}
if(xx>paletaX+(anchoPaleta*2) && xx<paletaX+(anchoPaleta*3) && yy>paletaY && yy<(paletaY+altoPaleta)){
colorElegido= color[2];
}
}
dibujarPaleta(paletaX,paletaY,anchoPaleta,altoPaleta,color);
pantalla.onmousemove = dibujarCirculo;
pantalla.onmousedown = habilitarDibujar;
pantalla.onmouseup = deshabilitarDibujar;
pantalla.onclick = elegirColorPincel;
</script>