Configurando o Desenho - JavaScript
O contexto do elemento canvas
CanvasRenderingContext2D
: Define a cor das linhas ou do contorno. Por padrão, a cor é preta.strokeStyle
: Define a cor de preenchimento das figuras. Por padrão, a cor é preta.fillStyle
: Define a espessura das linhas. O valor padrão é 1.0.lineWidth
: Define o estilo de junção das linhas.lineJoin
: Define a opacidade do desenho no canvas.globalAlpha
: Cria uma linha composta por traços curtos.setLineDash
Na seção anterior, ao desenhar retângulos, não especificamos cores, então a cor padrão (preta) foi utilizada tanto para as linhas quanto para o preenchimento dos retângulos. Agora, vamos utilizar outras cores. As cores podem ser definidas em diferentes formatos:
Pelo nome da cor, como "red" ou "green".
Pelo valor hexadecimal da cor, como "#00FFFF".
Pelo formato rgb, como "rgb(0, 0, 255)".
Pelo formato rgba, como "rgba(0, 0, 255, 0.5)".
Por exemplo, podemos definir a cor do contorno ou da borda das figuras usando a propriedade strokeStyle
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>Exemplo Canvas</title>
</head>
<body>
<canvas id="canvas" width="400" height="250"></canvas>
<script>
const canvas = document.getElementById('canvas');
const context = canvas.getContext('2d');
context.strokeStyle = '#ff0000'; // Define a cor do contorno da figura
context.strokeRect(10, 10, 100, 100);
</script>
</body>
</html>
Neste exemplo, a cor do contorno é definida como vermelha ("#ff0000").
Agora, vamos definir a cor de preenchimento utilizando a propriedade fillStyle
const canvas = document.getElementById("canvas");
const context = canvas.getContext("2d");
context.fillStyle = "#ee5253"; // Define a cor de preenchimento da figura
context.fillRect(10, 10, 100, 100);
Podemos combinar vários métodos:
const canvas = document.getElementById("canvas");
const context = canvas.getContext("2d");
context.fillStyle = "#c7ecee"; // Define a cor de preenchimento da figura
context.fillRect(10, 10, 100, 100);
context.strokeStyle = "#22a6b3"; // Define a cor do contorno da figura
context.strokeRect(10, 10, 100, 100);
context.fillRect(120, 10, 100, 100); // Retângulo sem contorno
context.strokeRect(230, 10, 100, 100); // Retângulo sem preenchimento
Espessura das Linhas
A propriedade lineWidth
const canvas = document.getElementById("canvas");
const context = canvas.getContext("2d");
context.fillStyle = "#c7ecee"; // Define a cor de preenchimento da figura
context.fillRect(10, 10, 100, 100);
context.strokeStyle = "#22a6b3"; // Define a cor do contorno da figura
context.lineWidth = 4.5; // Define a espessura da linha
context.strokeRect(10, 10, 100, 100);
Linhas Tracejadas
O método setLineDash()
const canvas = document.getElementById("canvas");
const context = canvas.getContext("2d");
context.strokeStyle = "red";
context.setLineDash([15, 5]);
context.strokeRect(10, 10, 100, 100);
context.strokeStyle = "blue";
context.setLineDash([2, 5, 6]);
context.strokeRect(130, 10, 100, 100);
context.strokeStyle = "green";
context.setLineDash([2]);
context.strokeRect(250, 10, 100, 100);
Tipo de Junção das Linhas
A propriedade lineJoin
: junção em ângulos retos. Este é o valor padrão.miter
: junção chanfrada.bevel
: junção arredondada.round
const canvas = document.getElementById("canvas");
const context = canvas.getContext("2d");
context.strokeStyle = "red";
context.lineWidth = 10;
context.lineJoin = "miter";
context.strokeRect(10, 10, 100, 100);
context.lineJoin = "bevel";
context.strokeRect(130, 10, 100, 100);
context.lineJoin = "round";
context.strokeRect(250, 10, 100, 100);
Transparência
A propriedade globalAlpha
const canvas = document.getElementById('canvas');
const context = canvas.getContext('2d');
context.fillStyle = 'blue';
context.fillRect(30, 30, 100, 100);
context.globalAlpha = 0.5;
context.fillStyle = 'red';
context.fillRect(70, 70, 100, 100);
Aqui, dois retângulos são desenhados no canvas: um azul e um vermelho. No entanto, antes de desenhar o retângulo vermelho, a opacidade foi definida como semi-transparente, permitindo que o retângulo azul seja visível através do vermelho: