Có vẻ lạ, nhưng dù sao HTML5 cũng hỗ trợ vẽ các đường, hình tròn, hình chữ nhật và nhiều hình dạng cơ bản khác, nó không có gì phù hợp để vẽ điểm cơ bản. Cách duy nhất để làm như vậy là mô phỏng điểm với bất cứ thứ gì bạn có.
Vì vậy, về cơ bản có 3 giải pháp có thể:
- vẽ điểm như một đường thẳng
- vẽ điểm như một đa giác
- vẽ điểm như một vòng tròn
Mỗi người trong số họ có nhược điểm của họ
Hàng
function point(x, y, canvas){
canvas.beginPath();
canvas.moveTo(x, y);
canvas.lineTo(x+1, y+1);
canvas.stroke();
}
Hãy nhớ rằng chúng ta đang vẽ theo hướng Đông Nam, và nếu đây là cạnh, có thể có một vấn đề. Nhưng bạn cũng có thể vẽ theo bất kỳ hướng nào khác.
Hình chữ nhật
function point(x, y, canvas){
canvas.strokeRect(x,y,1,1);
}
hoặc theo cách nhanh hơn bằng cách sử dụng fillRect vì công cụ kết xuất sẽ chỉ lấp đầy một pixel.
function point(x, y, canvas){
canvas.fillRect(x,y,1,1);
}
Vòng tròn
Một trong những vấn đề với vòng tròn là động cơ khó kết xuất chúng hơn
function point(x, y, canvas){
canvas.beginPath();
canvas.arc(x, y, 1, 0, 2 * Math.PI, true);
canvas.stroke();
}
ý tưởng tương tự như với hình chữ nhật bạn có thể đạt được với điền.
function point(x, y, canvas){
canvas.beginPath();
canvas.arc(x, y, 1, 0, 2 * Math.PI, true);
canvas.fill();
}
Vấn đề với tất cả các giải pháp sau:
- thật khó để theo dõi tất cả các điểm bạn sẽ vẽ.
- Khi bạn phóng to, nó trông xấu xí.
Nếu bạn đang tự hỏi, " cách tốt nhất để vẽ một điểm là gì? ", Tôi sẽ đi với hình chữ nhật đầy. Bạn có thể thấy jsperf của tôi ở đây với các bài kiểm tra so sánh .