Fórum Cor de formas no CANVAS #564121
15/10/2016
0
Olá, estou tentando montar um gráfico, neste gráfico um quadrado aumenta de tamanho conforme o número digitado pelo usuário.
Gostaria que esse quadrado ficasse com linhas pontilhadas e com a cor vermelha, porém, quando adiciono os códigos necessários para isso, o corpo do gráfico também muda de cor e fica pontilhado. Gostaria de saber como deixar apenas meu quadrado pontilhado e na cor vermelha. segue o código:
Gostaria que esse quadrado ficasse com linhas pontilhadas e com a cor vermelha, porém, quando adiciono os códigos necessários para isso, o corpo do gráfico também muda de cor e fica pontilhado. Gostaria de saber como deixar apenas meu quadrado pontilhado e na cor vermelha. segue o código:
<!DOCTYPE html>
<html>
<head>
<script type="text/javascript" >
function grafico(){
var canvas = document.getElementById("canvas");
var ctx = canvas.getContext("2d");
ctx.moveTo(150,50);
ctx.lineTo(150,250);
ctx.moveTo(50, 150);
ctx.lineTo(250, 150);
ctx.stroke();
}
function draw() {
var x = document.getElementById('valor').value;
var y = document.getElementById('valory').value;
var canvas = document.getElementById("canvas");
var ctx = canvas.getContext("2d");
ctx.clearRect(0, 0, canvas.width, canvas.height);
if ((x<=20&&y<=20)&&(x>=-20&&y>=-20)){
x = x*5;
y = y*5;
}
if (y==50){
ctx.strokeRect (150, 100, x, y);
}else{
ctx.strokeRect (150, 100+(50-y), x, y);
}
ctx.moveTo(150,50);
ctx.lineTo(150,250);
ctx.moveTo(50, 150);
ctx.lineTo(250, 150);
ctx.stroke();
}
</script>
<style>
#canvas{
border: 1px solid black;
margin-left:30%;
margin-top:10%;
}
#valores {
margin-left:36%;
}
</style>
</head>
<body onload="grafico()">
<canvas id="canvas" width="300" height="300"></canvas>
<form id="valores">
<input type="number" id="valor" placeholder="insira o valor de X"><br>
<input type="number" id="valory" placeholder="insira o valor de Y"><br>
<input type="button" onclick="grafico();draw();" value="enviar">
</form>
</body>
</html>
Nairan
Curtir tópico
+ 1
Responder
Posts
17/10/2016
Victor Machado
Olá Nairan.
O que acontece é que ele irá pintar todas linhas que forem desenhadas após ser definido o estilo, então antes desenhar as outras linhas você deve colocar novamente um novo estilo.
O que acontece é que ele irá pintar todas linhas que forem desenhadas após ser definido o estilo, então antes desenhar as outras linhas você deve colocar novamente um novo estilo.
ctx.strokeStyle = '#f00';
if ((x<=20&&y<=20)&&(x>=-20&&y>=-20)){
x = x*5;
y = y*5;
}
if (y==50){
ctx.strokeRect (150, 100, x, y);
}else{
ctx.strokeRect (150, 100+(50-y), x, y);
}
ctx.strokeStyle = '#000';
ctx.moveTo(150,50);
ctx.lineTo(150,250);
ctx.moveTo(50, 150);
ctx.lineTo(250, 150);
ctx.stroke();
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)