<meta charset="UTF-8">
<canvas width="600" height="400"></canvas>
<script>
// Mais cores!!! peguei dicas no forum.
function desenhaQuadrado(x, y, tamanho, cor) {
pincel.fillStyle = cor;
pincel.fillRect(x, y, tamanho, tamanho)
pincel.fill();
}
function desenhaCirculo(x, y, raio, cor) {
pincel.fillStyle = cor;
pincel.beginPath();
pincel.arc(x, y, raio, 0, 2 * 3.14);
pincel.fill();
}
function desenhaPaletaDeCores() {
desenhaQuadrado(xVermelho, yQuadrados, tamanhoQuadrados,'red');
desenhaQuadrado(xVerde, yQuadrados, tamanhoQuadrados, 'green');
desenhaQuadrado(xAzul, yQuadrados, tamanhoQuadrados, 'blue');
// Cores extras pra fixar bem o exercicio!
desenhaQuadrado(xAmarelo, yQuadrados, tamanhoQuadrados, 'yellow');
desenhaQuadrado(xLaranja, yQuadrados, tamanhoQuadrados, 'orange');
desenhaQuadrado(xRoxo, yQuadrados, tamanhoQuadrados, 'purple');
desenhaQuadrado(xMarron, yQuadrados, tamanhoQuadrados, 'brown');
desenhaQuadrado(xRosa, yQuadrados, tamanhoQuadrados, 'pink');
desenhaQuadrado(xMagenta, yQuadrados, tamanhoQuadrados, 'magenta');
desenhaQuadrado(xBranco, yQuadrados, tamanhoQuadrados, 'white');
desenhaQuadrado(xCinza, yQuadrados, tamanhoQuadrados, 'gray');
desenhaQuadrado(xPreto, yQuadrados, tamanhoQuadrados, 'black');
}
function lidaComMovimentoDoMouse(evento) {
x = evento.pageX - tela.offsetLeft;
y = evento.pageY - tela.offsetTop;
// if alterado para impedir que se desenhe por cima dos quadrados de seleção de cor.
if(desenha == true && ((x > 600 && y < 55) || y > 55)) {
desenhaCirculo(x, y, 5, corAtual);
}
}
function habilitaDesenhar() {
desenha = true;
alteraCor(); // Chamada da Função que muda a cor do pincel.
}
function desabilitaDesenhar() {
desenha = false;
}
//Função para alterar a cor do pincel.
function alteraCor() {
if(x > 0 && x < 50 && y < 50) { //Vermelho
corAtual = "red";
}
if(x > 50 && x < 100 && y < 50) { //Verde
corAtual = "green";
}
if(x > 100 && x < 150 && y < 50) { //Azul
corAtual = "blue";
}
// Cores extras pra fixar bem o exercicio!
if(x > 150 && x < 200 && y < 50) { //Amarelo
corAtual = "yellow";
}
if(x > 200 && x < 250 && y < 50) { //Laranja
corAtual = "orange";
}
if(x > 250 && x < 300 && y < 50) { //Roxo
corAtual = "purple";
}
if(x > 300 && x < 350 && y < 50) { //Marron
corAtual = "brown";
}
if(x > 350 && x < 400 && y < 50) { //Rosa
corAtual = "pink";
}
if(x > 400 && x < 450 && y < 50) { //Magenta
corAtual = "magenta";
}
if(x > 450 && x < 500 && y < 50) { //Branco
corAtual = "white";
}
if(x > 500 && x < 550 && y < 50) { //Cinza
corAtual = "gray";
}
if(x > 550 && x < 600 && y < 50) { //Preto
corAtual = "black";
}
}
var tela = document.querySelector('canvas');
var pincel = tela.getContext('2d');
pincel.fillStyle = 'lightgray';
pincel.fillRect(0, 0, 600, 400);
var x;
var y;
var desenha = false;
var corAtual = 'blue';
var xVermelho = 0;
var xVerde = 50;
var xAzul = 100;
// Cores extras pra fixar bem o exercicio!
var xAmarelo = 150;
var xLaranja = 200;
var xRoxo = 250;
var xMarron = 300;
var xRosa = 350;
var xMagenta = 400;
var xBranco = 450;
var xCinza = 500;
var xPreto = 550;
var yQuadrados = 0;
var tamanhoQuadrados = 50;
desenhaPaletaDeCores(); // mostra os quadrados de seleção de cores
tela.onmousemove = lidaComMovimentoDoMouse;
tela.onmousedown = habilitaDesenhar;
tela.onmouseup = desabilitaDesenhar;
</script>