Il semble étrange, mais néanmoins HTML5 prend en charge le dessin des lignes, des cercles, des rectangles et de nombreuses autres formes de base, il n'a rien d'adapté pour le dessin, le point de base. La seule façon de le faire est de simuler point avec ce que vous avez.
Donc, fondamentalement, il y a 3 solutions possibles:
- dessiner point par une ligne
- dessiner point par un polygone
- dessiner point par un cercle
Chacun d'eux a ses inconvénients
Ligne
function point(x, y, canvas){
canvas.beginPath();
canvas.moveTo(x, y);
canvas.lineTo(x+1, y+1);
canvas.stroke();
}
Gardez à l'esprit que nous sommes en train pour le Sud-Est, et si c'est le bord, il peut être un problème. Mais vous pouvez aussi tirer dans une autre direction.
Rectanle
function point(x, y, canvas){
canvas.strokeRect(x,y,1,1);
}
ou de manière plus rapide à l'aide de fillRect parce que le moteur de rendu remplira juste d'un pixel.
function point(x, y, canvas){
canvas.fillRect(x,y,1,1);
}
Cercle
L'un des problèmes avec des cercles, c'est qu'il est plus difficile pour un moteur à rendre
function point(x, y, canvas){
canvas.beginPath();
canvas.arc(x, y, 1, 0, 2 * Math.PI, true);
canvas.stroke();
}
la même idée avec le rectangle que vous pouvez obtenir avec de remplissage.
function point(x, y, canvas){
canvas.beginPath();
canvas.arc(x, y, 1, 0, 2 * Math.PI, true);
canvas.fill();
}
Des problèmes avec toutes ces solutions:
- il est difficile de garder une trace de tous les points que vous allez dessiner.
- lorsque vous effectuez un zoom avant, il semble laid
Si vous vous demandez, quelle est la meilleure façon de tracer un point, je voudrais aller avec un rectangle plein. Vous pouvez voir mon jsperf ici avec des tests de comparaison