Tuhaf görünüyor, ancak yine de HTML5 çizim çizgilerini, daireleri, dikdörtgenleri ve diğer birçok temel şekli destekliyor, temel noktayı çizmek için uygun bir şey yok. Bunu yapmanın tek yolu, sahip olduğunuz şeyle noktayı simüle etmektir.
Temel olarak 3 olası çözüm vardır:
- çizgi olarak nokta çiz
- çokgen olarak nokta çiz
- daire olarak nokta çiz
Her birinin dezavantajları var
Hat
function point(x, y, canvas){
canvas.beginPath();
canvas.moveTo(x, y);
canvas.lineTo(x+1, y+1);
canvas.stroke();
}
Güney-Doğu yönünü çizdiğimizi ve bu kenar ise, bir sorun olabileceğini unutmayın. Ancak başka herhangi bir yönde de çizim yapabilirsiniz.
Dikdörtgen
function point(x, y, canvas){
canvas.strokeRect(x,y,1,1);
}
veya fillRect kullanarak daha hızlı bir şekilde sunun, çünkü oluşturma motoru yalnızca bir pikseli dolduracaktır.
function point(x, y, canvas){
canvas.fillRect(x,y,1,1);
}
Daire
Dairelerle ilgili sorunlardan biri, bir motorun bunları oluşturmasının daha zor olmasıdır
function point(x, y, canvas){
canvas.beginPath();
canvas.arc(x, y, 1, 0, 2 * Math.PI, true);
canvas.stroke();
}
dolgu ile elde edebilirsiniz dikdörtgen ile aynı fikir.
function point(x, y, canvas){
canvas.beginPath();
canvas.arc(x, y, 1, 0, 2 * Math.PI, true);
canvas.fill();
}
Tüm bu çözümlerle ilgili sorunlar:
- çizeceğiniz tüm noktaları takip etmek zordur.
- yakınlaştırdığınızda çirkin görünüyor.
Eğer " Bir nokta çizmenin en iyi yolu nedir ? " Diye merak ediyorsanız, dolu dikdörtgenle giderdim. Jsperf'imi burada karşılaştırma testleri ile görebilirsiniz .