⊗jsSpCnvLn 262 of 294 menu

JavaScript аркылуу canvas'те сызыктарды тартуу

Жөнөкөй нерседен баштайлы - сызыктарды тартуудан. Бул кантип иштешин түшүнүү үчүн, сизде кагаз жана карандаш бар деп элестетиңиз. Сиз бул кагазга тарта аласыз, же тартпай эле карандашты керектүү чекитке жылдыра аласыз.

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हिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어LietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Биз сайттин иштөөсү, аналитика жана персонализация үчүн cookie файлдарын колдонобуз. Маалыматтарды иштетүү Маалыматты коргоо саясаты боюнча жүргүзүлөт.
баарын кабыл алуу ыңгайлаштыруу четке кагуу