⊗jsSpCnvLn 262 of 294 menu

Melukis Garisan melalui canvas pada JavaScript

Mari mulakan dengan yang mudah - melukis garisan. Untuk memahaminya, bayangkan anda mempunyai sehelai kertas dan pensel. Anda boleh melukis di atas kertas itu, atau hanya menggerakkan pensel ke titik yang dikehendaki tanpa melukis.

JavaScript juga berfungsi dengan cara yang sama: ia mempunyai pensel (atau pen untuk melukis), anda boleh menggerakkannya ke lokasi yang dikehendaki menggunakan kaedah moveTo, dan melukis - menggunakan kaedah lineTo.

Kedua-dua kaedah menerima titik sebagai parameter untuk menggerakkan hujung pen - parameter pertama ialah koordinat mendatar, dan yang kedua - menegak. Asalan koordinat ialah titik 0, 0 - ini adalah sudut kiri atas elemen.

Apabila pen digerakkan ke titik yang dikehendaki - kaedah moveTo hanya menggerakkan, manakala lineTo semasa menggerakkan melukis garisan dari kedudukan pen semasa ke titik ia akan bergerak.

Walau bagaimanapun, jika kod di atas dijalankan - tiada apa yang akan berlaku: perlu menulis dua lagi arahan: arahan pertama beginPath perlu dinyatakan sebelum mula melukis garisan, dan arahan kedua stroke perlu dipanggil selepas semua kombinasi moveTo dan lineTo untuk garisan dilukis.

Jadi, mari tulis kod yang berfungsi untuk melukis garisan:

Mari lukis garisan

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

:

Mari lukis bentuk burung

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

:

Mari lukis segi tiga

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

:

Mari lukis segi empat

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

:

Menutup bentuk

Untuk melukis bentuk tertutup, tidak semestinya membuat semua garisan - garisan terakhir boleh dilukis secara automatik dan menutup bentuk. Untuk ini, sebelum kaedah stroke, kaedah closePath harus dipanggil.

Kaedah ini cuba menutup bentuk dengan melukis garisan lurus dari titik akhir ke titik awal. Jika bentuk sudah ditutup atau merupakan hanya titik, maka kaedah tidak melakukan apa-apa.

Mari lukis segi tiga menggunakan 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); - langkah ini kita tinggalkan ctx.closePath(); ctx.stroke();

:

Mengisi bentuk

Selain kaedah stroke, kaedah fill boleh digunakan - dalam kes ini bentuk tidak semestinya perlu ditutup sepenuhnya - ia akan diisi walaupun begitu:

<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); - langkah ini kita tinggalkan //ctx.closePath(); - dan ini juga ctx.fill();

:

Masalah praktikal

Melayu
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Kami menggunakan kuki untuk operasi laman web, analisis dan personalisasi. Pemprosesan data dijalankan mengikut Polisi Kerahsiaan.
terima semua tataletak tolak