Es scheint seltsam, aber obwohl HTML5 das Zeichnen von Linien, Kreisen, Rechtecken und vielen anderen Grundformen unterstützt, gibt es nichts, was sich für das Zeichnen eines Punktes eignet. Die einzige Möglichkeit, dies zu tun, ist die Simulation eines Punktes mit dem, was Sie haben.
Es gibt also grundsätzlich 3 mögliche Lösungen:
- Punkt als Linie zeichnen
- Punkt als Polygon zeichnen
- Punkt als Kreis zeichnen
Jede dieser Möglichkeiten hat ihre Nachteile
Leitung
function point(x, y, canvas){
canvas.beginPath();
canvas.moveTo(x, y);
canvas.lineTo(x+1, y+1);
canvas.stroke();
}
Denken Sie daran, dass wir in Richtung Süd-Ost zeichnen, und wenn dies der Rand ist, kann es ein Problem geben. Sie können aber auch in jede andere Richtung zeichnen.
Rechteck
function point(x, y, canvas){
canvas.strokeRect(x,y,1,1);
}
oder auf schnellere Weise mit fillRect, da die Rendering-Engine nur ein Pixel füllen wird.
function point(x, y, canvas){
canvas.fillRect(x,y,1,1);
}
Kreis
Eines der Probleme mit Kreisen ist, dass es für einen Motor schwieriger ist, sie zu rendern
function point(x, y, canvas){
canvas.beginPath();
canvas.arc(x, y, 1, 0, 2 * Math.PI, true);
canvas.stroke();
}
die gleiche Idee wie bei Rechteck können Sie mit Füllung erreichen.
function point(x, y, canvas){
canvas.beginPath();
canvas.arc(x, y, 1, 0, 2 * Math.PI, true);
canvas.fill();
}
Probleme mit all diesen Lösungen:
- Es ist schwierig, den Überblick über alle Punkte zu behalten, die Sie ziehen werden.
- Wenn man hineinzoomt, sieht es hässlich aus.
Wenn Sie sich fragen: "Was ist die beste Art, einen Punkt zu zeichnen? ", würde ich ein gefülltes Rechteck nehmen. Sie können meine jsperf hier mit Vergleichstests .