⊗jsSpCnvLn 262 of 294 menu

Գծեր նկարելը canvas-ի միջոցով JavaScript-ում

Սկսենք պարզից՝ գծեր նկարելով: Որպեսզի հասկանաք, թե ինչպես է դա արվում, պատկերացրեք, որ ձեր առջևում կա թուղթ և մատիտ: Դուք կարող եք նկարել այդ թղթի վրա, կամ կարող եք չնկարել, ուղղակի տեղափոխել մատիտը ցանկալի կետ:

Նույն կերպ է աշխատում նաև JavaScript-ը՝ այն ունի մատիտ (կամ գրիչ նկարման համար), որն կարող եք տեղափոխել ցանկալի տեղ՝ օգտագործելով moveTo մեթոդը, իսկ նկարելու համար կարող եք օգտագործել lineTo մեթոդը:

Երկու մեթոդներն էլ պարամետրերով ընդունում են այն կետը, որին պետք է տեղափոխել գրիչի ծայրը. առաջին պարամետրը հորիզոնական կոորդինատն է, իսկ երկրորդը՝ ուղղահայաց կոորդինատը: Կոորդինատների սկզբնակետը՝ 0, 0 կետը, տարրի վերին ձախ անկյունն է:

Երբ գրիչը տեղափոխվում է ցանկալի կետ, moveTo մեթոդը ուղղակի տեղափոխում է այն, իսկ lineTo մեթոդը տեղափոխման ընթացքում նկարում է գիծ գրիչի ներկա դիրքից մինչև այն կետը, որին այն տեղափոխվում է:

Սակայն, եթե գործարկեք վերը նշված կոդը, ոչինչ չի պատահի. անհրաժեշտ է գրել ևս երկու հրաման. առաջին հրամանը՝ beginPath, պետք է նշված լինի գիծը նկարելը սկսելուց առաջ, իսկ երկրորդ հրամանը՝ stroke, պետք է կանչվի moveTo և lineTo համադրություններից հետո, որպեսզի գիծը նկարվի:

Այսպիսով, եկեք գրենք աշխատանքային կոդ գիծ նկարելու համար.

Եկեք նկարենք մի գիծ

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

:

Եկեք նկարենք թռչուն

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

:

Եկեք նկարենք եռանկյուն

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

:

Եկեք նկարենք քառակուսի

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

:

Ֆիգուրների փակում

Փակ ֆիգուր նկարելու համար պարտադիր չէ անել բոլոր գծերը. վերջին գիծը կարող է նկարվել ավտոմատ կերպով և փակել ֆիգուրը: Դրա համար stroke մեթոդից առաջ պետք է կանչել closePath մեթոդը:

Այս մեթոդը փորձում է փակել ֆիգուրը՝ նկարելով ուղիղ գիծ վերջնակետից դեպի սկզբնակետ: Եթե ֆիգուրն արդեն փակ էր կամ ուղղակի կետ է, ապա մեթոդը ոչինչ չի անում:

Եկեք նկարենք եռանկյունի՝ օգտագործելով 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); - այս քայլը բաց ենք թողնում ctx.closePath(); ctx.stroke();

:

Ֆիգուրների ներկում

stroke մեթոդի փոխարեն կարող եք օգտագործել fill մեթոդը. այս դեպքում ֆիգուրը պարտադիր չէ, որ լինի ամբողջությամբ փակ. այն կներկվի նաև այդպես.

<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.closePath(); - և այս մեկը նույնպես ctx.fill();

:

Գործնական առաջադրանքներ

Հայերեն
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Մենք օգտագործում ենք cookie-ներ կայքի աշխատանքի, վերլուծության և անհատականացման համար։ Տվյալների մշակումը կատարվում է համաձայն Գաղտնիության քաղաքականության։
ընդունել բոլորը կարգավորել մերժել