o codigo inteiro do programa funcional(menos a cor personalizada é claro) aqui:
<canvas width="600" height="400"> </canvas>
<br>Cores<br>
<button style = "margin-top: 5px; margin-left: 5px; margin-right: 0px" ; onclick="trocaCor(0)">Azul</button>
<button style = "margin-top: 5px; margin-left: 5px; margin-right: 0px" ; onclick="trocaCor(1)">Verde</button>
<button style = "margin-top: 5px; margin-left: 5px; margin-right: 0px" ; onclick="trocaCor(2)">Vermelho</button>
<button style = "margin-top: 5px; margin-left: 5px; margin-right: 0px" ; onclick="trocaCor(3)">Amarelo</button>
<button style = "margin-top: 5px; margin-left: 5px; margin-right: 0px" ; onclick="trocaCor(4)">Preto</button>
<button style = "margin-top: 5px; margin-left: 5px; margin-right: 0px" ; onclick="trocaCor(5)">Branco</button>
Cor Personalizada
<input type="color">
<button style = "margin-top: 5px; margin-left: 5px; margin-right: 0px" ; onclick="trocaCor(6)">Enviar</button>
<br>Ferramenta<br>
<button style = "margin-top: 5px; margin-left: 5px; margin-right: 0px" ; onclick="canetaF(0)">Pincel</button>
<button style = "margin-top: 5px; margin-left: 5px; margin-right: 0px" ; onclick="canetaF(1)">Borracha</button>
<br>Tamanho do pincel e da borracha<br>
<button style = "margin-top: 5px; margin-left: 5px; margin-right: 0px" ; onclick="setRaio(10)">10</button>
<button style = "margin-top: 5px; margin-left: 5px; margin-right: 0px" ; onclick="setRaio(20)">20</button>
<button style = "margin-top: 5px; margin-left: 5px; margin-right: 0px" ; onclick="setRaio(30)">30</button>
<button style = "margin-top: 5px; margin-left: 5px; margin-right: 0px" ; onclick="adcRaio(5)">+5</button>
<button style = "margin-top: 5px; margin-left: 5px; margin-right: 0px" ; onclick="subRaio(5)">-5</button>
<br>(O tamanho do pincel é limitado a um valor entre 10 e 40)
<script>
var tela = document.querySelector("canvas");
var pincel = tela.getContext("2d");
var personalizado = document.querySelector("input")
function corPersonalizada() {
return(personalizado.value)
}
function triangulo(cor,x_1,y_1,x_2,y_2,x_3,y_3){
pincel.fillStyle = cor;
pincel.beginPath();
pincel.moveTo(x_1, y_1);
pincel.lineTo(x_2, y_2);
pincel.lineTo(x_3, y_3);
pincel.fill();
}
function retangulo (cor, x_inicial, y_inicial, x_final, y_final, borda){
pincel.fillStyle = cor;
pincel.fillRect(x_inicial, y_inicial, x_final , y_final);
if(borda >=0){
pincel.fillStroke = "black"
pincel.strokeRect(x_inicial, y_inicial, x_final , y_final);
}
}
function circulo(cor, x_inicial, y_inicial, raio){
pincel.fillStyle = cor;
pincel.beginPath();
pincel.arc(x_inicial, y_inicial, raio, 0, 2*3.14);
pincel.fill()
}
function escrever(texto, x, y){
pincel.fonte="25px Georgia";
pincel.fillStyle="black";
pincel.fillText(texto, x, y);
}
var numeroCor = 0
function trocaCor(x){
numeroCor=x
}
var desenha = false
var ferramenta1 = [0, 1]
function canetaF(x){
ferramenta1=x
}
var cor = ["blue","green", "red", "yellow", "black", "white", corPersonalizada()]
var raio = 10
function desenhoOn(){desenha = true}
function desenhoOff(){desenha = false}
retangulo("lightgrey", 0, 0, 600, 400)
function adcRaio(x){raio= raio+x}
function subRaio(x){raio= raio-x}
function setRaio(x){raio= x}
canetaF(0)
function desenhaCirculo(evento){
if(raio>40){
raio = 40
}
if(raio<10){
raio = 10
}
if(desenha == true){
if(ferramenta1 == 0){
var x= evento.pageX - tela.offsetLeft;
var y= evento.pageY - tela.offsetTop;
circulo(cor[numeroCor], x, y, raio)
}
}
}
function borracha(evento) {
if(raio>40){
raio = 40
}
if(raio<10){
raio = 10
}
if(desenha == true){
if(ferramenta1 == 1){
var tamanho = (raio*1.5)
var x_1 = evento.pageX - tela.offsetLeft -tamanho;
var x_2 = (tamanho*2);
var y_1 = evento.pageY - tela.offsetTop -tamanho;
var y_2 = (tamanho*2);
retangulo("lightgrey", x_1, y_1, x_2, y_2);
}
}
}
function mouse(x){
if(ferramenta1 == 0){
return(desenhaCirculo(x))
} if(ferramenta1 == 1){
return(borracha(x))
}
}
tela.onmousemove = mouse;
tela.onmousedown = desenhoOn;
tela.onmouseup = desenhoOff;
</script>
esse codigo é um frankenstei de varios que formei e obviamente precisa de uma polida pra ficar mais limpo, mas gostaria que relevasem isso e me ajudasem a arrumar o problema do array, sei que pode haver formas de resolver o problema tirando ele do array e usando o if ou algo do tipo, mas realmente queria saber o porque o array n conseguir puxar o input, desde ja agradeço a todos. :)