Glatte Benutzer gezeichnete Linien in Leinwand
Ich bin mit <canvas>
zum erfassen von Benutzereingaben in form einer Signatur und versuche herauszufinden, wie glatt der Eingabe von der Maus.
Ich glaube, ich brauche zum verarbeiten der Benutzer die Maus-Bewegungen werden chunk für chunk und glatt-jeder chunk, ich bin nicht nach super glätten aber auch keine Verbesserung auf den zerklüfteten input wäre gut.
Dank,
Daneben
- Sie brauchen eine Signatur, die ist legal für, sagen wir, vertragliche Zwecke? Wenn dem so ist, wäre eine Signatur, die dadurch erzeugt werden, ausreichend?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Nicht sicher, ob dies Ihnen helfen könnte,
Ich schrieb diesen code von Grund auf in wenigen Minuten.
Probieren Sie es http://jsbin.com/ateho3
markup :
JavaScript :
Hatte ich eine glatte Leinwand-Zeichnung für eine mobile web-Anwendung und gelernt einige Dinge.
Die Antwort von Avinash ist toll, aber wenn Sie erhöhen Sie die Linienstärke, wenn Sie ziehen, werden Sie sehen, gestrichelte Linien. Es ist, weil die Linie Kappe ist rechteckig standardmäßig.
Machen die Linie glatter ist, müssen Sie etwas zwicken ein bisschen.
ctx.lineCap = 'round';
diesem kleinen kniff wird Ihnen eine super glatte Linie.
Mehr darüber wissen, versuchen Sie folgenden link
https://developer.mozilla.org/samples/canvas-tutorial/4_6_canvas_linecap.html
Wie über die Verwendung Bezier-Kurven?
bezierCurveTo
stattlineTo
. Die Glättung wird mehr ausgesprochen, wenn Sie Probe zu jedem anderen Punkt. Auch ohne Glättung meiner Signatur ist nicht sehr "gezackt". Die Teile der Signatur mit der geringsten treue sind die Brutto-änderungen, die nicht wirklich geholfen glätten.Ich noch nicht getestet, in irgendeiner Weise, aber Sie könnten versuchen, zeichnen kleine Kreise, die mit einem radialen Farbverlauf füllen.
Überlegen dots mithilfe von Linien automatisch oder sogar verwenden Sie
quadraticCurveTo
, aber Sie müssen berechnen Sie den mittleren Punkt selbst.