⊗jsSpCnvLn 262 of 294 menu

Rita linjer med canvas i JavaScript

Låt oss börja med enkelt - att rita linjer. För att förstå hur det görs, föreställ dig att du har ett papper och en penna. Du kan rita på detta papper, eller så kan du bara flytta pennan till önskad punkt utan att rita.

JavaScript fungerar på samma sätt: det har en penna (eller ritpenna), till önskad plats kan du flytta den med hjälp av metoden moveTo, och rita - med hjälp av metoden lineTo.

Båda metoderna tar som parametrar en punkt att flytta pennspetsen till - första parametern är koordinaten horisontellt, och den andra - vertikalt. Koordinaternas ursprung - punkten 0, 0 - är elementets övre vänstra hörn.

När pennan flyttas till önskad punkt - så flyttar metoden moveTo bara, medan lineTo under flytten ritar en linje från pennans nuvarande position till punkten där den flyttas.

Men om du kör koden ovan så händer ingenting: det är nödvändigt att skriva ytterligare två kommandon: det första kommandot beginPath ska anges innan linjeritningen börjar, och det andra kommandot stroke måste anropas efter alla kombinationer av moveTo och lineTo för att linjen ska ritas.

Så, låt oss skriva fungerande kod för att rita en linje:

Låt oss rita en linje

<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();

:

Låt oss rita en fågel

<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();

:

Låt oss rita en triangel

<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();

:

Låt oss rita en kvadrat

<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();

:

Stänga figurer

För att rita en stängd figur behöver du inte göra alla linjer - den sista linjen kan ritas automatiskt och stänga figuren. För detta, före metoden stroke, bör du anropa metoden closePath.

Denna metod försöker stänga figuren genom att rita en rak linje från slutpunkten till startpunkten. Om figuren redan var stängd eller är bara en punkt, så gör metoden ingenting.

Låt oss rita en triangel med hjälp av closePath:

<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); - detta steg utelämnar vi ctx.closePath(); ctx.stroke();

:

Fyllning av figurer

Istället för metoden stroke kan du använda metoden fill - i detta fall behöver figuren inte nödvändigtvis vara helt stängd - den kommer att fyllas ändå:

<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); - detta steg utelämnar vi //ctx.closePath(); - och detta också ctx.fill();

:

Praktiska uppgifter

Svenska
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Vi använder kakor för webbplatsens funktion, analys och personalisering. Behandling av data sker i enlighet med Integritetspolicyn.
acceptera alla anpassa avvisa