Segue o exercicio proposto, com uma cadeia de IFs caso o usuário tente zerar o raio do pincel para voltar ao tamanho minimo.
HTML
<!DOCTYPE html>
<html lang="pt-BR">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Desenhando na tela com troca de cor</title>
</head>
<body>
<div>
<canvas id="tela" width="600px" height="400px"></canvas>
<script src="tela.js"></script>
</div>
</body>
</html>
JS
const tela = document.querySelector("#tela");
const pincel = tela.getContext("2d");
pincel.fillStyle="lightgray";
pincel.fillRect(0,0,600,400);
let corAtual = 0;
const cores=["blue","red","green","orange","white"];
let raio = 10;
function desenhaCirculo(evento){
const posX = evento.pageX - tela.offsetLeft;
const posY = evento.pageY - tela.offsetTop;
pincel.fillStyle=cores[corAtual];
pincel.beginPath();
if(evento.shiftKey && raio>=10){
raio+=10;
}else if(evento.ctrlKey && raio-10>=10){
raio-=10;
}
pincel.arc(posX,posY,raio,0,2*Math.PI)
pincel.fill();
console.log(corAtual);
}
tela.onclick = desenhaCirculo;
tela.oncontextmenu = mudaCores;
function mudaCores(){
corAtual=corAtual+1;
if(corAtual>= cores.length){
corAtual=0;
}
return false;
}
Tela