HTML5 – Zeichnen von Kurven

Das Zeichnen von Kurven auf einer Leinwand kann einfach oder komplex sein. Alles hängt davon ab, was Sie erreichen möchten. Sie können einige interessante Effekte ausführen, mit denen Sie einige Funktionen auf unserer Seite erstellen können, die sich von den übrigen in HTML5 erstellten Seiten abheben.

Eines der Dinge, die wir tun können, ist, der Erstellung gekrümmter Linien eine erweiterte Handhabung zu geben. Mit dieser Art von Werkzeugen sind wir näher dran, keine Einschränkungen zu haben, wenn wir darüber nachdenken, was unsere Seite tun kann.

Zeichnen Sie eine Kurve, wenn Sie die Maus bewegen

Dieser Fall ist sehr interessant, da wir beim Bewegen der Maus eine Kurve zeichnen. Wenn wir eine beliebige Taste auf unserer Tastatur drücken, ändern sich einige Punkte der Kurve.

Wenn Sie beispielsweise die Strg-Taste drücken, wird der erste Punkt, der das Ende des Unterpfads darstellt , verschoben. Wenn Sie die Umschalttaste drücken, wird der zweite Punkt verschoben. Dies sind die ersten beiden Argumente der arcTo () – Methode Drücken Sie eine beliebige Taste, um den dritten Punkt zu verschieben, der durch die letzten beiden Argumente der Methode dargestellt wird.

Nachfolgend sehen wir den Code, mit dem wir diese Effekte erzielen:

 <! DOCTYPE HTML> <html> <head> <title> Beispiel </ title> <style> Leinwand {Rand: dünn schwarz} body> * {float: left;} </ style> </ head> <body> <canvas id = "canvas" width = "500" height = "140"> Ihr Browser unterstützt das Element <code> canvas </ code> nicht </ canvas> <script> var canvasElem = document.getElementById ("canvas"); var ctx = canvasElem.getContext ("2d"); var point1 = [100, 10]; var point2 = [200, 10]; var point3 = [200, 110]; draw (); canvasElem.onmousemove = Funktion (e) { if (e.ctrlKey) { point1 = [e.clientX, e.clientY]; } else if (e.shiftKey) { point2 = [e.clientX, e.clientY]; } else { point3 = [e.clientX, e.clientY]; } ctx.clearRect (0, 0, 540, 140); draw (); } function draw () { ctx.fillStyle = "gelb"; ctx.strokeStyle = "schwarz"; ctx.lineWidth = 4; ctx.beginPath (); ctx.moveTo (point1 [0], point1 [1]); ctx.arcTo (Punkt 2 [0], Punkt 2 [1], Punkt 3 [0], Punkt 3 [1], 50); ctx.stroke (); drawPoint (point1 [0], point1 [1]); drawPoint (point2 [0], point2 [1]); drawPoint (point3 [0], point3 [1]); ctx.beginPath (); ctx.moveTo (point1 [0], point1 [1]); ctx.lineTo (Punkt2 [0], Punkt2 [1]); ctx.lineTo (Punkt 3 [0], Punkt 3 [1]); ctx.stroke (); } Funktion drawPoint (x, y) { ctx.lineWidth = 1; ctx.strokeStyle = "Netzwerk"; ctx.strokeRect (x-2, y-2, 4, 4); } </ script> </ body> </ html> 

Wie wir sehen, definieren wir zuerst im Code den Handler für den Empfang von Ereignissen der Tasten, die wir drücken, und legen darin die Werte fest, die verwendet werden müssen.

See also  HTML5, Eingabeelement - Teil 2

Nachfolgend sehen Sie einen Screenshot, wie dies in unserem Browser auftreten kann. Beachten Sie, dass die Ergebnisse bei der Reproduktion dieses Beispiels variieren können, wenn Sie dynamisch sind:

html5_curvasarcavanz.jpg

Verwenden der Arc-Methode

Früher hatten wir nur die Methode arcTo () verwendet, jetzt werden wir sehen, wie die Methode arc () funktioniert. Die Handhabung ist einfacher, da wir einen Punkt in der Zeichenfläche durch die ersten beiden Argumente und dann den Radius und den Winkel von angeben Kurve

Das folgende Beispiel zeigt, wie Sie mit dieser Methode drei Arten von Kurven zeichnen:

 <! DOCTYPE HTML> <html> <head> <title> Beispiel </ title> <style> Leinwand {Rand: dünn schwarz} body> * {float: left;} </ style> </ head> <body> <canvas id = "canvas" width = "500" height = "140"> Ihr Browser unterstützt das Element <code> canvas </ code> nicht </ canvas> <script> var ctx = document.getElementById ("canvas"). getContext ("2d"); ctx.fillStyle = "gelb"; ctx.lineWidth = "3"; ctx.beginPath (); ctx.arc (70, 70, 60, 0, Math.PI * 2, wahr); ctx.stroke (); ctx.beginPath (); ctx.arc (200, 70, 60, Math.PI / 2, Math.PI, true); ctx.fill (); ctx.stroke (); ctx.beginPath (); var = 0; für (var i = 0; i <4; i ++) { ctx.arc (350, 70, 60, val, val + Math.PI / 4, false); val + = Math.PI / 2; } ctx.closePath (); ctx.fill (); ctx.stroke (); </ script> </ body> </ html> 

Mal sehen, wie das in unserem Browser aussieht:

html5_curvasarcavanz2.jpg

Wie wir sehen, sind das erste und das zweite Beispiel Kreise, ein vollständiger und der andere mit einer kleinen Öffnung, während der dritte Kreis völlig unregelmäßig ist und uns die Vielseitigkeit der arc () -Methode zeigt.

administrator

Leave a Reply

Your email address will not be published. Required fields are marked *