⊗jsSpCnvLn 262 of 294 menu

Joonte joonistamine canvas'i abil JavaScriptis

Alustame lihtsast - joonte joonistamisest. Selleks, et mõista, kuidas seda tehakse, kujutlege, et teil on paberileht ja pliiats. Te võite sellel lehel joonistada või lihtsalt ilma joonistamata liigutada pliiatsi soovitud punkti.

Samamoodi töötab ka JavaScript: sellel on pliiats (või joonistuspastakas), õigesse kohta saate seda liigutada kasutades meetodit moveTo, ja joonistada - kasutades meetodit lineTo.

Mõlemad meetodid võtavad parameetriteks punkti, kuhu pastaka ots liigutada - esimeseks parameetriks horisontaal-koordinaadi ja teiseks - vertikaal-koordinaadi. Koordinaatide alguspunkt - punkt 0, 0 - on elemendi ülemine vasak nurk.

Kui pastakas liigub soovitud punkti - meetod moveTo lihtsalt liigutab, aga lineTo liikumise käigus joonistab joone praegusest pastaka asukohast punktini, kuhu see liigub.

Siiski, kui käivitada ülaltoodud kood - ei juhtu midagi: on vaja kirjutada kaks käsku veel: esimene käsk beginPath tuleb määrata enne joone joonistamise algust ja teine käsk stroke tuleb kutsuda pärast kõiki moveTo ja lineTo kombinatsioone selleks, et joon joonistuks.

Nii, kirjutame töötava koodi joone joonistamiseks:

Joonistame joone

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

:

Joonistame linnukese

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

:

Joonistame kolmnurga

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

:

Joonistame ruudu

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

:

Kujundite sulgemine

Suletud kujundi joonistamiseks ei ole tingimata vaja teha kõiki jooni - viimane joon võib joonistuda automaatselt ja kujund suletakse. Selleks tuleb enne meetodit stroke kutsuda välja meetod closePath.

See meetod üritab kujundit sulgeda, joonistades sirge joone lõpp-punktist alguspunkti. Kui kujund oli juba suletud või on lihtsalt punkt, siis meetod ei tee midagi.

Joonistame kolmnurga, kasutades 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); - jätame selle sammu vahele ctx.closePath(); ctx.stroke();

:

Kujundite täitmine

Meetodi stroke asemel saab kasutada meetodit fill - sel juhul ei pea kujund tingimata olema täielikult suletud - see täidetakse niikuinii:

<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); - jätame selle sammu vahele //ctx.closePath(); - ja selle ka ctx.fill();

:

Praktilised ülesanded

Eesti
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Me kasutame saidi toimimiseks, analüüsi ja personaliseerimiseks küpsiseid. Andmete töötlemine toimub vastavalt Privaatsuspoliitikale.
nõustu kõigega häälesta keeldu