Tampaknya aneh, tetapi meskipun demikian HTML5 mendukung menggambar garis, lingkaran, persegi panjang dan banyak bentuk dasar lainnya, itu tidak memiliki apa pun yang cocok untuk menggambar titik dasar. Satu-satunya cara untuk melakukannya adalah dengan mensimulasikan poin dengan apa pun yang Anda miliki.
Jadi pada dasarnya ada 3 solusi yang mungkin:
- gambar titik sebagai garis
- gambar titik sebagai poligon
- gambar titik sebagai lingkaran
Masing-masing dari mereka memiliki kekurangan
Baris
function point(x, y, canvas){
canvas.beginPath();
canvas.moveTo(x, y);
canvas.lineTo(x+1, y+1);
canvas.stroke();
}
Ingatlah bahwa kita sedang menuju ke arah Tenggara, dan jika ini adalah ujungnya, mungkin ada masalah. Tapi Anda juga bisa menggambar ke arah lain.
Empat persegi panjang
function point(x, y, canvas){
canvas.strokeRect(x,y,1,1);
}
atau dengan cara yang lebih cepat menggunakan fillRect karena mesin render hanya akan mengisi satu piksel.
function point(x, y, canvas){
canvas.fillRect(x,y,1,1);
}
Lingkaran
Salah satu masalah dengan lingkaran adalah lebih sulit bagi mesin untuk membuat mereka
function point(x, y, canvas){
canvas.beginPath();
canvas.arc(x, y, 1, 0, 2 * Math.PI, true);
canvas.stroke();
}
ide yang sama seperti dengan persegi panjang yang bisa Anda capai dengan mengisi.
function point(x, y, canvas){
canvas.beginPath();
canvas.arc(x, y, 1, 0, 2 * Math.PI, true);
canvas.fill();
}
Masalah dengan semua solusi ini:
- sulit untuk melacak semua poin yang akan Anda gambar.
- ketika Anda memperbesar, tampilannya jelek.
Jika Anda bertanya-tanya, "Apa cara terbaik untuk menggambar titik? ", Saya akan pergi dengan persegi panjang penuh. Anda dapat melihat jsperf saya di sini dengan tes perbandingan .