⊗jsSpCnvLn 262 of 294 menu

Crtanje linija pomoću canvas-a u JavaScript-u

Počnimo od jednostavnog - crtanja linija. Da biste razumeli kako se to radi, zamislite da imate list papira i olovku. Možete crtati na ovom listu, ili možete, bez crtanja, jednostavno pomerati olovku do željene tačke.

JavaScript funkcioniše na sličan način: on ima olovku (ili pero za crtanje), do željenog mesta možete je pomeriti pomoću metode moveTo, a crtati - pomoću metode lineTo.

Oba metoda kao parametre primaju tačku u koju se pomera vrh pera - prvim parametrom koordinatu po horizontali, a drugim - po vertikali. Početak koordinata - tačka 0, 0 - to je gornji levi ugao elementa.

Kada se pero pomera do željene tačke - metoda moveTo jednostavno pomera, a lineTo u procesu pomeranja crta liniju od trenutnog položaja pera do tačke u koju će se ono pomeriti.

Međutim, ako pokrenete gore navedeni kod - ništa se neće desiti: potrebno je napisati još dve komande: prva komanda beginPath mora biti navedena pre početka crtanja linije, a druga komanda stroke mora biti pozvana nakon svih kombinacija moveTo i lineTo kako bi se linija nacrtala.

Dakle, hajde da napišemo funkcionalni kod za crtanje linije:

Nacrtajmo liniju

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

:

Nacrtajmo pticu

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

:

Nacrtajmo trougao

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

:

Nacrtajmo kvadratić

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

:

Zatvaranje figura

Za crtanje zatvorene figure nije obavezno praviti sve linije - poslednja linija može se nacrtati automatski i zatvoriti figuru. Za to, pre metode stroke treba pozvati metodu closePath.

Ovaj metod pokušava da zatvori figuru, crtajući pravu liniju iz krajnje tačke u početnu. Ako je figura već zatvorena ili je jednostavno tačka, onda metod ne radi ništa.

Hajde da nacrtamo trougao, koristeći 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); - ovaj korak izostavljamo ctx.closePath(); ctx.stroke();

:

Bojenje figura

Umesto metode stroke možete koristiti metodu fill - pri tome figura ne mora nužno biti potpuno zatvorena - obojiće se i ovako:

<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); - ovaj korak izostavljamo //ctx.closePath(); - i ovaj takođe ctx.fill();

:

Praktični zadaci

Srpski
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Koristimo kolačiće za rad sajta, analitiku i personalizaciju. Obrada podataka se vrši u skladu sa Politikom privatnosti.
prihvati sve podesi odbij