Sembra strano, ma HTML5 supporta comunque il disegno di linee, cerchi, rettangoli e molte altre forme di base, non ha nulla di adatto per disegnare il punto base. L'unico modo per farlo è simulare il punto con qualunque cosa tu abbia.
Quindi sostanzialmente ci sono 3 possibili soluzioni:
- disegnare il punto come una linea
- disegnare il punto come un poligono
- disegnare il punto come un cerchio
Ognuno di loro ha i suoi svantaggi
Linea
function point(x, y, canvas){
canvas.beginPath();
canvas.moveTo(x, y);
canvas.lineTo(x+1, y+1);
canvas.stroke();
}
Tieni presente che stiamo andando verso la direzione sud-est e, se questo è il limite, potrebbe esserci un problema. Ma puoi anche disegnare in qualsiasi altra direzione.
Rettangolo
function point(x, y, canvas){
canvas.strokeRect(x,y,1,1);
}
o in un modo più veloce usando fillRect perché il motore di rendering riempirà solo un pixel.
function point(x, y, canvas){
canvas.fillRect(x,y,1,1);
}
Cerchio
Uno dei problemi con i cerchi è che per un motore è più difficile renderli
function point(x, y, canvas){
canvas.beginPath();
canvas.arc(x, y, 1, 0, 2 * Math.PI, true);
canvas.stroke();
}
la stessa idea del rettangolo che puoi ottenere con il riempimento.
function point(x, y, canvas){
canvas.beginPath();
canvas.arc(x, y, 1, 0, 2 * Math.PI, true);
canvas.fill();
}
Problemi con tutte queste soluzioni:
- è difficile tenere traccia di tutti i punti che traccerai.
- quando ingrandisci, sembra brutto.
Se ti stai chiedendo "Qual è il modo migliore per disegnare un punto? ", Andrei con il rettangolo pieno. Puoi vedere il mio jsperf qui con i test di confronto .