⊗jsSpCnvLn 262 of 294 menu

JavaScript-də canvas vasitəsilə xətt çəkmək

Sadədən başlayaq - xətt çəkməklə. Bunun necə edildiyini başa düşmək üçün təsəvvür edin ki, sizin bir kağız vərəqi və qələminiz var. Siz bu vərəqin üzərində rəsm çəkə bilərsiniz, ya da çəkmədən sadəcə qələmi lazımi nöqtəyə köçürə bilərsiniz.

JavaScript də eynilə işləyir: onun bir qələmi (və ya rəsm çəkmək üçün qələm) var, siz onu moveTo metodu ilə lazımi yerə köçürə bilərsiniz, rəsm çəkmək üçün isə lineTo metodundan istifadə edə bilərsiniz.

Hər iki metod parametr kimi qələmin ucunun köçürüləcəyi nöqtəni qəbul edir - birinci parametr üfüqi koordinat, ikincisi isə şaquli koordinatdır. Koordinatların başlanğıcı - 0, 0 nöqtəsidir - bu elementin yuxarı sol küncüdür.

Qələm lazımi nöqtəyə köçürüldükdə - moveTo metodu sadəcə köçürür, lineTo metodu isə köçürmə prosesində qələmin hazırkı mövqeyindən onun köçürüləcəyi nöqtəyə qədər bir xətt çəkir.

Lakin, yuxarıdakı kodu işə salsanız - heç nə baş verməyəcək: daha iki əmr yazmaq lazımdır: birinci əmr beginPath xətt çəkməyə başlamazdan əvvəl göstərilməlidir, ikinci əmr stroke isə bütün moveTolineTo kombinasiyalarından sonra xəttin çəkilməsi üçün çağırılmalıdır.

Beləliklə, gəlin işləyən xətt çəkmə kodu yazaq:

Xətt çəkək

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

:

Quşcuq çəkək

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

:

Üçbucaq çəkək

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

:

Kvadrat çəkək

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

:

Fiqurların bağlanması

Bağlanmış fiqur çəkmək üçün bütün xətləri çəkmək mütləq deyil - son xətt avtomatik çəkilib fiquru bağlaya bilər. Bunun üçün stroke metodundan əvvəl closePath metodunu çağırmaq lazımdır.

Bu metod fiquru bağlamağa çalışır, son nöqtədən başlanğıc nöqtəyə düz xətt çəkməklə. Əgər fiqur artıq bağlanıbsa və ya sadəcə nöqtədirsə, metod heç nə etmir.

Gəlin closePath istifadə edərək üçbucaq çəkək:

<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); - bu addımı atlayırıq ctx.closePath(); ctx.stroke();

:

Fiqurların rəngləndirilməsi

stroke metodu əvəzinə fill metodundan istifadə etmək olar - bu zaman fiqurun tam bağlanması mütləq deyil - o hər halda rənglənəcək:

<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); - bu addımı atlayırıq //ctx.closePath(); - və bunu da ctx.fill();

:

Praktiki tapşırıqlar

Azərbaycan
AfrikaansБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικά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
Biz saytin işi, analitika və fərdiləşdirmə üçün cookie istifadə edirik. Məlumatların emalı Məxfilik Siyasəti əsasında həyata keçirilir.
hamısını qəbul et konfiqurasiya et rədd et