⊗jsSpCnvLn 262 of 294 menu

Menggambar Garis melalui Canvas pada JavaScript

Mari kita mulai dengan yang sederhana - menggambar garis. Untuk memahami cara melakukannya, bayangkan Anda memiliki selembar kertas dan pensil. Anda dapat menggambar di kertas ini, atau hanya memindahkan pensil ke titik yang diinginkan tanpa menggambar.

JavaScript bekerja dengan cara yang sama: ia memiliki pensil (atau pena untuk menggambar), ke lokasi yang diinginkan Anda dapat memindahkannya menggunakan method moveTo, dan menggambar - menggunakan method lineTo.

Kedua method menerima parameter berupa titik ke mana ujung pena akan digeser - parameter pertama adalah koordinat horizontal, dan yang kedua - vertikal. Titik asal koordinat - titik 0, 0 - adalah sudut kiri atas elemen.

Ketika pena dipindahkan ke titik yang diinginkan - method moveTo hanya memindahkan, sedangkan lineTo dalam proses perpindahan menggambar garis dari posisi pena saat ini ke titik tujuannya.

Namun, jika kode di atas dijalankan - tidak ada yang akan terjadi: perlu menulis dua perintah lagi: perintah pertama beginPath harus ditulis sebelum mulai menggambar garis, dan perintah kedua stroke harus dipanggil setelah semua kombinasi moveTo dan lineTo agar garis tergambar.

Jadi, mari tulis kode yang berfungsi untuk menggambar garis:

Mari menggambar garis

<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 menggambar 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 menggambar segitiga

<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 menggambar kotak

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

:

Penutupan bentuk

Untuk menggambar bentuk tertutup, tidak harus membuat semua garis - garis terakhir dapat digambar secara otomatis dan menutup bentuk. Untuk ini, sebelum method stroke, panggil method closePath.

Method ini mencoba menutup bentuk dengan menggambar garis lurus dari titik akhir ke titik awal. Jika bentuk sudah tertutup atau hanya berupa titik, maka method tidak melakukan apa-apa.

Mari gambar segitiga 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 lewati ctx.closePath(); ctx.stroke();

:

Mengisi bentuk

Alih-alih method stroke, Anda dapat menggunakan method fill - dengan ini bentuk tidak harus benar-benar tertutup - bentuk akan terisi warna begitu saja:

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

:

Tugas praktis

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