Básicos do Canvas HTML
Os Básicos do Canvas HTML são fundamentais para criar gráficos dinâmicos e interativos diretamente em páginas web, utilizando a tag
Exemplo Básico
html<!DOCTYPE html>
<html>
<body>
<canvas id="canvas" width="400" height="200" style="border:1px solid #000;"></canvas>
<script>
const canvas = document.getElementById('canvas');
const ctx = canvas.getContext('2d'); // Obtain 2D drawing context
ctx.fillStyle = 'teal'; // Set fill color
ctx.fillRect(50, 50, 150, 100); // Draw filled rectangle
</script>
</body>
</html>
O código acima começa declarando uma tag
Exemplo Prático
html<!DOCTYPE html>
<html>
<body>
<canvas id="chart" width="600" height="300" style="border:1px solid #ccc;"></canvas>
<script>
const canvas = document.getElementById('chart');
const ctx = canvas.getContext('2d');
// Gradient background
const gradient = ctx.createLinearGradient(0, 0, 600, 0);
gradient.addColorStop(0, '#89f7fe');
gradient.addColorStop(1, '#66a6ff');
ctx.fillStyle = gradient;
ctx.fillRect(0, 0, 600, 300);
// Weekly sales data
const sales = \[200, 250, 150, 300, 180];
const barWidth = 80;
const gap = 25;
ctx.fillStyle = '#2c3e50';
ctx.font = '18px Arial';
for(let i = 0; i < sales.length; i++) {
let x = i * (barWidth + gap) + 50;
let y = 300 - sales\[i];
ctx.fillRect(x, y, barWidth, sales\[i]);
ctx.fillText(sales\[i], x + 25, y - 10);
} </script>
</body>
</html>
Neste exemplo prático, construímos um gráfico de barras para visualizar dados semanais, recurso comum em portfólios, e-commerces e sites de notícias. O fundo usa um gradiente linear que transita entre dois tons de azul, melhorando a estética visual e facilitando a leitura — como decorar um ambiente com uma parede texturizada.
Os dados da variável sales representam valores numéricos que definem a altura de cada barra. Usamos um loop para desenhar cada barra na posição correta, calculando o eixo horizontal (x) multiplicando o índice pelo tamanho da barra mais o espaçamento (gap). O eixo vertical (y) é ajustado para que as barras cresçam de baixo para cima.
Além das barras, desenhamos o número correspondente sobre cada uma usando fillText para exibir o valor, facilitando a interpretação do gráfico pelo usuário. Esse exemplo mostra como o Canvas pode ser usado para criar elementos visuais interativos e informativos em diversas plataformas.
Melhores práticas e erros comuns
Melhores práticas:
- Sempre defina os atributos width e height diretamente na tag
- Separe a lógica do desenho em funções para melhor organização e manutenção do código.
- Use cores e fontes que garantam boa legibilidade e acessibilidade para todos os usuários.
- Inclua texto alternativo e descrições para garantir acessibilidade, já que o Canvas não é interpretado diretamente por leitores de tela.
Erros comuns a evitar:
- Ignorar o contexto 2D e tentar desenhar antes de chamar getContext('2d').
- Ajustar tamanho do Canvas somente via CSS, causando imagens desfocadas.
- Não usar beginPath() ao desenhar múltiplas formas, levando a desenhos sobrepostos inesperados.
-
Deixar o Canvas sem bordas ou fundo, dificultando a identificação do seu espaço na página.
Dicas para depuração: -
Utilize o console do navegador para verificar erros JavaScript.
- Use bordas temporárias no Canvas para visualizar o espaço ocupado.
- Teste desenhos simples antes de adicionar complexidade para isolar erros.
📊 Referência Rápida
Property/Method | Description | Example |
---|---|---|
getContext('2d') | Obtém o contexto 2D para desenhar | const ctx = canvas.getContext('2d'); |
fillStyle | Define a cor ou padrão de preenchimento | ctx.fillStyle = 'red'; |
fillRect(x, y, largura, altura) | Desenha um retângulo preenchido | ctx.fillRect(10, 20, 100, 50); |
beginPath() | Inicia um novo caminho para desenho | ctx.beginPath(); |
arc(x, y, raio, ânguloInicial, ânguloFinal) | Desenha um arco ou círculo | ctx.arc(50, 50, 30, 0, 2 * Math.PI); |
fillText(texto, x, y) | Desenha texto no Canvas | ctx.fillText('Olá', 70, 80); |
Resumo e próximos passos
Neste tutorial você consolidou os conhecimentos básicos para trabalhar com Canvas HTML, aprendendo a criar uma área de desenho, manipular cores, desenhar formas e textos. Como na organização de uma biblioteca, dominar essas ferramentas permite montar interfaces visuais complexas e organizadas.
O Canvas funciona em conjunto com CSS para estilizar a área e JavaScript para criar interatividade e animações avançadas. Recomenda-se aprofundar-se em tópicos como animações frame a frame, manipulação de eventos do usuário, e uso de bibliotecas especializadas para maximizar o potencial do Canvas.
Pratique criando gráficos personalizados, jogos simples ou interfaces interativas para fortalecer sua habilidade e aplicar o que aprendeu em projetos reais.
🧠 Teste Seu Conhecimento
Teste seu Conhecimento
Teste sua compreensão deste tópico com questões práticas.
📝 Instruções
- Leia cada pergunta cuidadosamente
- Selecione a melhor resposta para cada pergunta
- Você pode refazer o quiz quantas vezes quiser
- Seu progresso será mostrado no topo