⊗jsSpCnvLn 262 of 294 menu

Linien zeichnen mit Canvas in JavaScript

Beginnen wir mit etwas Einfachem - dem Zeichnen von Linien. Um zu verstehen, wie das funktioniert, stellen Sie sich vor, dass Sie ein Blatt Papier und einen Bleistift haben. Sie können auf diesem Blatt zeichnen, oder Sie können den Bleistift ohne zu zeichnen einfach an die gewünschte Stelle bewegen.

Genauso funktioniert JavaScript: Es hat einen Bleistift (oder einen Zeichenstift), an die gewünschte Stelle können Sie ihn mit der Methode moveTo bewegen, und zeichnen - mit der Methode lineTo.

Beide Methoden nehmen als Parameter den Punkt, an den die Stiftspitze bewegt werden soll - der erste Parameter ist die Koordinate horizontal, der zweite - vertikal. Der Koordinatenursprung - Punkt 0, 0 - ist die obere linke Ecke des Elements.

Wenn der Stift an die gewünschte Stelle bewegt wird - bewegt die Methode moveTo ihn nur, während lineTo während der Bewegung eine Linie von der aktuellen Stiftposition bis zum Punkt zeichnet, an den er bewegt wird.

Wenn Sie jedoch den obigen Code ausführen, passiert nichts: Zwei weitere Befehle müssen geschrieben werden: Der erste Befehl beginPath muss vor dem Zeichnen der Linie angegeben werden, und der zweite Befehl stroke muss nach allen Kombinationen von moveTo und lineTo aufgerufen werden, damit die Linie gezeichnet wird.

Lassen Sie uns also einen funktionierenden Code zum Zeichnen einer Linie schreiben:

Zeichnen wir eine Linie

<canvas width="200" height="200" style="background: #f4f4f4;"></canvas> let canvas = document.querySelector('canvas'); let ctx = canvas.getContext('2d'); ctx.beginPath(); ctx.moveTo(50, 50); ctx.lineTo(150, 50); ctx.stroke();

:

Zeichnen wir ein Vögelchen

<canvas width="200" height="200" style="background: #f4f4f4;"></canvas> let canvas = document.querySelector('canvas'); let ctx = canvas.getContext('2d'); ctx.beginPath(); ctx.moveTo(50, 50); ctx.lineTo(100, 100); ctx.lineTo(150, 50); ctx.stroke();

:

Zeichnen wir ein Dreieck

<canvas width="200" height="200" style="background: #f4f4f4;"></canvas> let canvas = document.querySelector('canvas'); let ctx = canvas.getContext('2d'); ctx.beginPath(); ctx.moveTo(50, 50); ctx.lineTo(100, 100); ctx.lineTo(150, 50); ctx.lineTo(50, 50); ctx.stroke();

:

Zeichnen wir ein Quadrat

<canvas width="200" height="200" style="background: #f4f4f4;"></canvas> let canvas = document.querySelector('canvas'); let ctx = canvas.getContext('2d'); ctx.beginPath(); ctx.moveTo(50, 50); ctx.lineTo(150, 50); ctx.lineTo(150, 150); ctx.lineTo(50, 150); ctx.closePath(); ctx.stroke();

:

Schließen von Formen

Um eine geschlossene Form zu zeichnen, muss man nicht alle Linien selbst zeichnen - die letzte Linie kann automatisch gezeichnet werden und die Form schließen. Dazu sollte vor der Methode stroke die Methode closePath aufgerufen werden.

Diese Methode versucht, die Form zu schließen, indem sie eine gerade Linie vom Endpunkt zum Startpunkt zeichnet. Wenn die Form bereits geschlossen war oder nur ein einfacher Punkt ist, tut die Methode nichts.

Lassen Sie uns ein Dreieck zeichnen und dabei closePath verwenden:

<canvas width="200" height="200" style="background: #f4f4f4;"></canvas> let canvas = document.querySelector('canvas'); let ctx = canvas.getContext('2d'); ctx.beginPath(); ctx.moveTo(50, 50); ctx.lineTo(100, 100); ctx.lineTo(150, 50); //ctx.lineTo(50, 50); - diesen Schritt lassen wir aus ctx.closePath(); ctx.stroke();

:

Füllen von Formen

Anstelle der Methode stroke kann die Methode fill verwendet werden - dabei muss die Form nicht unbedingt vollständig geschlossen sein - sie wird trotzdem gefüllt:

<canvas width="200" height="200" style="background: #f4f4f4;"></canvas> let canvas = document.querySelector('canvas'); let ctx = canvas.getContext('2d'); ctx.beginPath(); ctx.moveTo(50, 50); ctx.lineTo(100, 100); ctx.lineTo(150, 50); //ctx.lineTo(50, 50); - diesen Schritt lassen wir aus //ctx.closePath(); - und diesen auch ctx.fill();

:

Praktische Aufgaben

Deutsch
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Wir verwenden Cookies für den Betrieb der Website, Analyse und Personalisierung. Die Datenverarbeitung erfolgt gemäß der Datenschutzerklärung.
alle akzeptieren anpassen ablehnen