⊗jsSpCnvLn 262 of 294 menu

Σχεδίαση γραμμών μέσω canvas σε JavaScript

Ας ξεκινήσουμε με κάτι απλό - τη σχεδίαση γραμμών. Για να καταλάβετε πώς γίνεται αυτό, φανταστείτε ότι έχετε ένα φύλλο χαρτί και ένα μολύβι. Μπορείτε να σχεδιάσετε σε αυτό το φύλλο, ή μπορείτε απλά να μετακινείτε το μολύβι στο επιθυμητό σημείο χωρίς να σχεδιάζετε.

Παρομοίως λειτουργεί και το JavaScript: έχει ένα μολύβι (ή πένα για σχεδίαση), που μπορείτε να μετακινήσετε στην επιθυμητή θέση χρησιμοποιώντας τη μέθοδο moveTo, και να σχεδιάσετε - χρησιμοποιώντας τη μέθοδο lineTo.

Και οι δύο μέθοδοι δέχονται ως παραμέτρους ένα σημείο, στο οποίο θα μετακινηθεί η άκρη της πένας - η πρώτη παράμετρος είναι η συντεταγμένη στον οριζόντιο άξονα, και η δεύτερη - στον κάθετο. Η αρχή των αξόνων - το σημείο 0, 0 - είναι η επάνω αριστερή γωνία του στοιχείου.

Όταν η πένα μετακινείται στο επιθυμητό σημείο - η μέθοδος moveTo απλά μετακινεί, ενώ η lineTo κατά τη διάρκεια της μετακίνησης σχεδιάζει μια γραμμή από την τρέχουσα θέση της πένας μέχρι το σημείο στο οποίο θα μετακινηθεί.

Ωστόσο, αν εκτελέσετε τον παραπάνω κώδικα - τίποτα δεν θα συμβεί: είναι απαραίτητο να γράψετε δύο ακόμη εντολές: η πρώτη εντολή beginPath πρέπει να καθοριστεί πριν από την έναρξη της σχεδίασης της γραμμής, και η δεύτερη εντολή stroke πρέπει να κληθεί μετά από όλους τους συνδυασμούς moveTo και lineTo για να εμφανιστεί η γραμμή.

Λοιπόν, ας γράψουμε έναν λειτουργικό κώδικα για σχεδίαση γραμμής:

Ας σχεδιάσουμε μια γραμμή

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

:

Ας σχεδιάσουμε ένα πουλάκι

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

:

Ας σχεδιάσουμε ένα τρίγωνο

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

:

Ας σχεδιάσουμε ένα τετραγωνάκι

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

:

Κλείσιμο σχημάτων

Για τη σχεδίαση ενός κλειστού σχήματος δεν είναι απαραίτητο να σχεδιάσετε όλες τις γραμμές - η τελευταία γραμμή μπορεί να σχεδιαστεί αυτόματα και να κλείσει το σχήμα. Για αυτό, πριν από τη μέθοδο stroke θα πρέπει να καλέσετε τη μέθοδο closePath.

Αυτή η μέθοδος προσπαθεί να κλείσει το σχήμα, σχεδιάζοντας μια ευθεία γραμμή από το τελικό σημείο στο αρχικό. Εάν το σχήμα ήταν ήδη κλειστό ή είναι απλά ένα σημείο, τότε η μέθοδος δεν κάνει τίποτα.

Ας σχεδιάσουμε ένα τρίγωνο, χρησιμοποιώντας την 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); - αυτό το βήμα παραλείπουμε ctx.closePath(); ctx.stroke();

:

Γέμισμα σχημάτων

Αντί για τη μέθοδο stroke μπορείτε να χρησιμοποιήσετε τη μέθοδο fill - σε αυτήν την περίπτωση το σχήμα δεν είναι απαραίτητο να είναι πλήρως κλειστό - θα γεμίσει και έτσι:

<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.closePath(); - και αυτό επίσης ctx.fill();

:

Πρακτικές ασκήσεις

Ελληνικά
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Χρησιμοποιούμε cookie για τη λειτουργία του ιστότοπου, την ανάλυση και την εξατομίκευση. Η επεξεργασία των δεδομένων γίνεται σύμφωνα με την Πολιτική Απορρήτου.
αποδοχή όλων ρύθμιση απόρριψη