⊗jsSpCnvLn 262 of 294 menu

Rysowanie linii za pomocą canvas w JavaScript

Zacznijmy od prostego - od rysowania linii. Aby zrozumieć, jak to się robi, wyobraź sobie, że masz kartkę papieru i ołówek. Możesz rysować na tej kartce, ale możesz też bez rysowania po prostu przesuwać ołówek w żądane miejsce.

Podobnie działa JavaScript: ma on ołówek (lub pióro do rysowania), w żądane miejsce możesz przesunąć go za pomocą metody moveTo, a rysować - za pomocą metody lineTo.

Oba metody przyjmują jako parametry punkt, do którego przesunąć czubek pióra - pierwszym parametrem współrzędną w poziomie, a drugim - w pionie. Początek układu współrzędnych - punkt 0, 0 - to lewy górny róg elementu.

Kiedy pióro przesuwa się do żądanego punktu - metoda moveTo po prostu przesuwa, a lineTo w procesie przesuwania rysuje linię od aktualnej pozycji pióra do punktu, do którego się przesunie.

Jednakże, jeśli uruchomimy powyższy kod - nic się nie stanie: konieczne jest napisanie jeszcze dwóch komend: pierwsza komenda beginPath powinna być podana przed rozpoczęciem rysowania linii, a druga komenda stroke powinna zostać wywołana po wszystkich kombinacjach moveTo i lineTo po to, aby linia się narysowała.

A zatem, napiszmy działający kod do rysowania linii:

Narysujmy linię

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

:

Narysujmy ptaszka

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

:

Narysujmy trójkąt

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

:

Narysujmy kwadracik

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

:

Zamykanie figur

Do rysowania zamkniętej figury nie jest konieczne robienie wszystkich linii - ostatnia linia może narysować się automatycznie i zamknąć figurę. W tym celu przed metodą stroke należy wywołać metodę closePath.

Ta metoda próbuje zamknąć figurę, rysując prostą linię z punktu końcowego do początkowego. Jeśli figura była już zamknięta lub jest po prostu punktem, to metoda nic nie robi.

Narysujmy trójkąt, używając 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); - ten krok pomijamy ctx.closePath(); ctx.stroke();

:

Wypełnianie figur

Zamiast metody stroke można użyć metody fill - przy tym figura niekoniecznie musi być całkowicie zamknięta - wypełni się i tak:

<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); - ten krok pomijamy //ctx.closePath(); - i ten też ctx.fill();

:

Zadania praktyczne

Polski
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Wykorzystujemy pliki cookie do działania strony, analizy i personalizacji. Przetwarzanie danych odbywa się zgodnie z Polityką prywatności.
zaakceptuj wszystkie dostosuj odrzuć