Parece estranho, mas, mesmo assim, o HTML5 suporta o desenho de linhas, círculos, retângulos e muitas outras formas básicas; ele não possui nada adequado para desenhar o ponto básico. A única maneira de fazer isso é simular o ponto com o que você tiver.
Então, basicamente, existem 3 soluções possíveis:
- desenhar ponto como uma linha
- desenhar ponto como um polígono
- desenhar ponto como um círculo
Cada um deles tem suas desvantagens
Linha
function point(x, y, canvas){
canvas.beginPath();
canvas.moveTo(x, y);
canvas.lineTo(x+1, y+1);
canvas.stroke();
}
Lembre-se de que estamos seguindo na direção sudeste e, se esse for o limite, pode haver um problema. Mas você também pode desenhar em qualquer outra direção.
Retângulo
function point(x, y, canvas){
canvas.strokeRect(x,y,1,1);
}
ou de maneira mais rápida usando fillRect, porque o mecanismo de renderização preencherá apenas um pixel.
function point(x, y, canvas){
canvas.fillRect(x,y,1,1);
}
Círculo
Um dos problemas com os círculos é que é mais difícil para um mecanismo processá-los
function point(x, y, canvas){
canvas.beginPath();
canvas.arc(x, y, 1, 0, 2 * Math.PI, true);
canvas.stroke();
}
a mesma idéia do retângulo que você pode obter com o preenchimento.
function point(x, y, canvas){
canvas.beginPath();
canvas.arc(x, y, 1, 0, 2 * Math.PI, true);
canvas.fill();
}
Problemas com todas estas soluções:
- é difícil acompanhar todos os pontos que você vai desenhar.
- quando você aumenta o zoom, parece feio.
Se você está se perguntando: "Qual é a melhor maneira de desenhar um ponto? ", Eu usaria um retângulo preenchido. Você pode ver meu jsperf aqui com testes de comparação .