⊗jsSpCnvLn 262 of 294 menu

JavaScript orqali canvasda chiziqlar chizish

Oddiydan boshlaymiz - chiziqlar chizish. Buni qanday qilishni tushunish uchun, qog'oz varag'i va qalamingiz borligini tasavvur qiling. Siz ushbu varag'da chiza olasiz, yoki chizmasdan kerakli nuqtaga qalamni ko'chirishingiz mumkin.

JavaScript ham xuddi shunday ishlaydi: uning chizish qalami (yoki qalami) bor, kerakli joyga siz uni moveTo metodi yordamida ko'chirishingiz mumkin, chizish uchun esa lineTo metodidan foydalanasiz.

Ikkala metod ham parametr sifatida qalam uchining ko'chadigan nuqtasini qabul qiladi - birinchi parametr gorizontal koordinata, ikkinchisi esa vertikal koordinata. Koordinatalar boshi - 0, 0 nuqta - bu elementning chap yuqori burchagi.

Qalam kerakli nuqtaga ko'chirilganda - moveTo metodi oddiygina ko'chiradi, lineTo esa ko'chirish jarayonida qalamning joriy holatidan ko'chadigan nuqtasigacha chiziq chizadi.

Biroq, agar yuqoridagi kodni ishga tushirsangiz - hech narsa bo'lmaydi: yana ikkita buyruqni yozish kerak: birinchi beginPath buyrug'i chiziq chizishni boshlashdan oldin ko'rsatilishi kerak, ikkinchi stroke buyrug'i esa chiziq chizilishi uchun barcha moveTo va lineTo kombinatsiyalaridan keyin chaqirilishi kerak.

Shunday qilib, keling chiziq chizish uchun ishlaydigan kodni yozamiz:

Chiziq chizamiz

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

:

Qushcha chizamiz

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

:

Uchburchak chizamiz

<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 chizamiz

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

:

Shakllarni yopish

Yopiq shakl chizish uchun barcha chiziqlarni qilish shart emas - oxirgi chiziq avtomatik ravishda chizilishi va shaklni yopishi mumkin. Buning uchun stroke metodidan oldin closePath metodini chaqirish kerak.

Bu metod shaklni yopishga harakat qiladi, boshlang'ich nuqtadan oxirgi nuqtaga to'g'ri chiziq chizadi. Agar shakl allaqachon yopilgan bo'lsa yoki oddiy nuqta bo'lsa, metod hech narsa qilmaydi.

Keling closePath dan foydalangan holda uchburchak chizamiz:

<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 qadamni tashlab o'tamiz ctx.closePath(); ctx.stroke();

:

Shakllarni bo'yash

stroke metodining o'rniga fill metodidan foydalanish mumkin - bunda shakl to'liq yopiq bo'lishi shart emas - u shunday ham bo'yaladi:

<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 qadamni tashlab o'tamiz //ctx.closePath(); - va buni ham ctx.fill();

:

Amaliy vazifalar

Oʻzbek
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекTiếng Việt
Biz sayt ishlashi, tahlil qilish va shaxsiylashtirish uchun cookie-fayllardan foydalanamiz. Ma'lumotlarni qayta ishlash Maxfiylik siyosatiga muvofiq amalga oshiriladi.
hammasini qabul qilish sozlash rad etish