Ich beginne HTML-Canvas-Element zu erforschen, indem ein einfaches Zeichenprogramm erstellen:Wie kann ich die Zeichenfläche so löschen, dass immer eine Linie zwischen (0,0) und meinen Mauskoordinaten angezeigt wird?
- Wenn ich meine Maus auf der Leinwand bewegen, mag ich eine Linie zwischen (0,0) und den Maus-Koordinaten gezeichnet werden. Ich möchte immer nur eine Zeile rendern.
- Um sicherzustellen, dass nur eine Zeile angezeigt wird, lösche ich bei der Mausbewegung den Kontext und zeichne eine neue Linie von (0,0) bis zur Maus (x, y).
- Das obige ist nicht das gleiche wie "Freiform" oder "Bleistift" Zeichenwerkzeug, sondern eine grobe Form der "Linie" Werkzeug.
Im Inneren der Maus bewegen Event-Handler, ich dies zuerst tun:
context.clearRect(0, 0, canvas.width, canvas.height);
und dann dies tun:
context.moveTo(0, 0);
context.lineTo(mousePos.x, mousePos.y);
context.stroke();
Das Problem ist, wird die Leinwand nicht das Clearing und alle zuvor Linien gezeichnet werden noch gezeigt.
Der vollständige Code ist hier: https://jsfiddle.net/csenthiltech/7ozsnhoy/
Ich habe versucht, Online-Quellcode einfache Zeichenprogramme durchlaufen und fanden sie auch einen ähnlichen Ansatz verfolgt wird. Aber ich kann es nicht funktionieren. Hier sind einige Fragen, die ich zu diesem Thema ging durch:
Was bin ich hier?
closePath() hat keinen Zweck, hier (und es ist nicht erforderlich) – K3N