⊗jsSpCnvLn 262 of 294 menu

Uchora mistari kupitia canvas kwenye JavaScript

Wacha tuanze kwa kuchora mistari. Ili kuelewa jinsi hii inafanyika, fikiria kuwa una karatasi na kalamu. Unaweza kuchora kwenye karatasi hiyo, au bila kuchora unaweza tu kusogeza kalamu hadi mahali unapotaka.

JavaScript inafanya kazi vivyo hivyo: ina kalamu (au kalamu ya kuchorea), unaweza kuipeleka mahali unapotaka kwa kutumia kitendo moveTo, na kuchora - kwa kutumia kitendo lineTo.

Njia zote mbili huchukua pointi kama vigezo, ambapo kalamu inapaswa kusogezwa - kigezo cha kwanza ni uratibu usio na usawa, na cha pili - usio na wima. Mwanzo wa kuratibu - pointi 0, 0 - hii ni kona ya juu kushoto ya kipengele.

Wakati kalamu inasogezwa kwenye pointi inayohitajika - kitendo moveTo husogeza tu, na lineTo katika mchakato wa kusogeza huchora mstari kutoka kwenye nafasi ya sasa ya kalamu hadi kwenye pointi, ambayo itasogea.

Hata hivyo, ikiwa utaendesha msimbo ulio hapo juu - hakuna kitakachotokea: ni muhimu kuandika amri mbili zaidi: amri ya kwanza beginPath inapaswa kubainishwa kabla ya kuanza kuchora mstari, na amri ya pili stroke inapaswa kuitwa baada ya mchanganyiko wote wa moveTo na lineTo ili mstari uchorwe.

Kwa hivyo, wacha tuandike msimbo unaofanya kazi wa kuchora mstari:

Wacha tuchore mstari

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

:

Wacha tuchore ndege

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

:

Wacha tuchore pembe tatu

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

:

Wacha tuchore mraba

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

:

Kufunga maumbo

Ili kuchora umbo lililofungwa sio lazima ufanye mistari yote - mstari wa mwisho unaweza kuchorwa kiotomatiki na kufunga umbo. Ili kufanya hivyo kabla ya kitendo stroke inapaswa kuitwa kitendo closePath.

Kitendo huji jaribu kufunga umbo, kwa kuchora mstari ulionyooka kutoka kwenye pointi ya mwisho hadi kwenye mwanzo. Ikiwa umbo limekwisha fungwa au ni pointi tu, basi kitendo hakifanyi chochote.

Wacha tuchore pembe tatu, tukitumia 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); - tuniacha hatua hii ctx.closePath(); ctx.stroke();

:

Kukatia rangi maumbo

Badala ya kitendo stroke unaweza kutumia kitendo fill - katika kesi hii umbo sio lazima liwe limefungwa kabisa - litakatiwa rangi hata hivyo:

<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); - tuniacha hatua hii //ctx.closePath(); - na hii pia ctx.fill();

:

Kazi za vitendo

Kiswahili
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Tunatumia kuki kwa ajili ya uendeshaji wa tovuti, uchambuzi na ubinafsishaji. Usindikaji wa data unafanyika kulingana na Sera ya Faragha.
kubali yote sanidi kataa