Τα σχήματα της εβδομάδας (4)

Αυτήν την εβδομάδα είδαμε κάποια αρκετά απλά και συμπαθητικά σχήματα, οπότε είναι ευκαιρία να μιλήσουμε για κάποιες λεπτομέρειες του tikz. Αν θέλετε να κάνετε μία επανάληψη με τα σχήματα των προηγούμενων εβδομάδων, δείτε εδώ ή εδώ.

Απλό και λιτό…

Το πρώτο σχήμα της περασμένης εβδομάδας ήταν αυτό:

Συμπαθητικό…

Ο αντίστοιχος κώδικας φαίνεται παρακάτω:

\documentclass[tikz, margin=5mm]{standalone}
 
\begin{document}
    \begin{tikzpicture}
    \draw[dashed] (-3.99,-3.99) grid (3.99,3.99);
    \draw[thick, ->] (-4,0) -- (4,0)node[pos=1,below]{$x$};
    \draw[thick, ->] (0,-4) -- (0,4)node[pos=1,left]{$y$};
    \draw[thick, blue, domain={-2}:{3}, samples=100] plot (\x,{abs(0.25*(\x-1)*(\x+1)*(\x+1)*(\x-3))});
    \draw[thick, dashed, domain={-2}:{3}, samples=100] plot (\x,{0.25*(\x-1)*(\x+1)*(\x+1)*(\x-3)});
    \node[circle, inner sep=1.5pt, draw=black, fill=black, label={right,yshift=8pt}:{$(3,0)$}] at (3,0){};
    \node[circle, inner sep=1.5pt, draw=black, fill=black] at (-2,3.8){};
    \node[circle, inner sep=1.5pt, draw=blue, fill=blue, label={right,yshift=8pt}:{}] at (3,0){};
    \node[circle, inner sep=1.5pt, draw=blue, fill=blue] at (-2,3.8){};
    \end{tikzpicture}
\end{document}

Εδώ το μοτίβο είναι ίδιο με άλλα σχήματα που έχουμε δει στο παρελθόν: άξονες, πλέγματα, καμπύλες. Εφόσον, λοιπόν, δεν έχουμε και κάτι καινούργιο να πούμε, ας συζητήσουμε λίγο για το τι πράγματα μπορούμε να κάνουμε μέσα στην εντολή plot. Όπως θα έχετε δει, στην εντολή plot δίνουμε συντεταγμένες σημείων που θέλουμε να σχεδιαστούν και να συνδεθούν με μικρά ευθύγραμμα τμήματα – ανάλογα με την τιμή της παραμέτρου samples. Γενικά, η σύνταξη της εντολής είναι:

plot ({stuff},{stuff})

Στο παραπάνω, το stuff μπορεί να αντικατασταθεί από οποιεσδήποτε μαθηματικές εκφράσεις ενώ πρέπει να υπάρχει και τουλάχιστον μία δηλωμένη μεταβλητή – όπως παραπάνω η \x – η οποία θα παίρνει τιμές στο εύρος που έχουμε ορίσει, μέσω της παραμέτρου domain. Γενικά, δεν είναι δεσμευτικό να γράφουμε όπως και παραπάνω: plot (\x,{stuff}) απλά ως τώρα έχει χρειαστεί να σχεδιάσουμε μονάχα συναρτήσεις – οπότε και η πρώτη μεταβλητή είναι η ανεξάρτητη. Κάλλιστα, μπορεί κανείς να σχεδιάσει με χρήση της plot επίπεδες καμπύλες – και όχι μόνο – όπως θα δούμε στο μέλλον.

Ομοίως απλό…

Το επόμενο σχήμα μας είναι το ακόλουθο:

Απλό κι αυτό…

Ο αντίστοιχος κώδικας είναι ο εξής:

\documentclass[tikz, margin=5mm]{standalone}
 
\begin{document}
    \begin{tikzpicture}
    \draw[dashed] (-3.99,-3.99) grid (3.99,3.99);
    \draw[thick, ->] (-4,0) -- (4,0)node[pos=1,below]{$x$};
    \draw[thick, ->] (0,-4) -- (0,4)node[pos=1,left]{$y$};
    \draw[thick, dashed, domain={-2}:{3}, samples=100] plot (\x,{0.25*(\x-1)*(\x+1)*(\x+1)*(\x-3)});
    \draw[thick, blue, domain={-3}:{2}, samples=100] plot (\x,{0.25*(-\x-1)*(-\x+1)*(-\x+1)*(-\x-3)});
    \node[circle, inner sep=1.5pt, draw=black, fill=black, label={right,yshift=8pt}:{$(3,0)$}] at (3,0){};
    \node[circle, inner sep=1.5pt, draw=black, fill=black] at (-2,3.8){};
    \node[circle, inner sep=1.5pt, draw=blue, fill=blue, label={right,yshift=8pt}:{}] at (-3,0){};
    \node[circle, inner sep=1.5pt, draw=blue, fill=blue] at (2,3.8){};
    \end{tikzpicture}
\end{document}

Πάλι τα ίδια… Δεν πειράζει, εδώ έχουμε ευκαιρία να πούμε διάφορα και πάλι για την plot. Για την ακρίβεια, έχουμε να πούμε διάφορα σε σχέση με τις εκφράσεις που μπορούμε να γράψουμε σαν ορίσματά της – στο παρελθόν έχουμε μιλήσει λίγο για την ύψωση σε δύναμη μόνο. Γενικά, επιτρέπονται οι περισσότερες συναρτήσεις χωρίς κάποια ιδιαιτερότητα στον συμβολισμό. Δηλαδή, αν έχετε εκτεθεί σε κάποια άλλη γλώσσα προγραμματισμού στο παρελθόν, τότε γνωρίζετε ήδη τις περισσότερες συμβάσεις που χρειάζονται. Για παράδειγμα, η ρίζα είναι sqrt, το ημίτονο sin – αναλόγως και για τα άλλα τριγωνομετρικά – η εκθετική συνάρτηση είναι exp – εννοείται με βάση e – κ.λπ. Επίσης, για τις πράξεις ισχύουν οι συνήθεις συμβάσεις, +,-,*,/ όπως και στις περισσότερες γλώσσες προγραμματισμού, ενώ για την ύψωση σε δύναμη χρησιμοποιείται ο τελεστής ^. Επίσης, κατά τα γνωστά, χρησιμοποιούμε παρενθέσεις όπου θέλουμε να δώσουμε προτεραιότητα, ενώ το tikz υιοθετεί την παραδοσιακή σειρά προτεραιότητας των πράξεων, με παρενθέσεις > εκθετικά > πολλαπλασιασμούς/διαιρέσεις > προσθέσεις/αφαιρέσεις και όλα αυτά από τα αριστερά προς τα δεξιά.

Πιο απλό…

Το επόμενο απλό μας σχήμα είναι αυτό:

Μία απλή μεταφορά (κυριολεκτικά)

Ο αντίστοιχος κώδικας είναι ο εξής:

\documentclass[tikz, margin=5mm]{standalone}
 
\begin{document}
    \begin{tikzpicture}
    \draw[dashed] (-3.99,-3.99) grid (3.99,3.99);
    \draw[thick, ->] (-4,0) -- (4,0)node[pos=1,below]{$x$};
    \draw[thick, ->] (0,-4) -- (0,4)node[pos=1,left]{$y$};
    \draw[thick, dashed, domain={-2}:{3}, samples=100] plot (\x,{0.25*(\x-1)*(\x+1)*(\x+1)*(\x-3)});
    \draw[thick, blue, domain={-4}:{1}, samples=100] plot (\x,{0.25*(\x+1)*(\x+3)*(\x+3)*(\x-1)});
    \node[circle, inner sep=1.5pt, draw=black, fill=black, label={right,yshift=8pt}:{$(3,0)$}] at (3,0){};
    \node[circle, inner sep=1.5pt, draw=black, fill=black] at (-2,3.8){};
    \node[circle, inner sep=1.5pt, draw=blue, fill=blue, label={right,yshift=8pt}:{}] at (1,0){};
    \node[circle, inner sep=1.5pt, draw=blue, fill=blue] at (-4,3.8){};
    \end{tikzpicture}
\end{document}

Κι εδώ όλα καλά κι απλά. Πολύ απλά, δηλαδή, με κλειστά τα μάτια έπρεπε να μπορείτε να κάνετε το παραπάνω σχήμα – τόσα παρόμοια έχουμε δει, άλλωστε. Αλλά, μια και το αναφέραμε, ας δούμε λίγο στον προτελευταίο κόμβο την ετικέτα του:

label={right,yshift=8pt}:{}

Αυτό εδώ δεν έχει νόημα. Για την ακρίβεια, είναι άχρηστο, καθώς απλά τυπώνει μία κενή ετικέτα δεξιά και λίγο πάνω από τη θέση του κόμβου. Όπως φαντάζεστε, είναι προϊόν πλημμελούς copy-paste, αλλά μας διδάσκει και κάτι χρήσιμο. Γενικά, μπορούμε στο tikz πολλές παραμέτρους να τις αφήνουμε με κάποια dummy (όπως λέμε) τιμή όταν δεν ξέρουμε αν θα τις αξιοποιήσουμε ή όχι στο μέλλον – και βαριόμαστε να το σημειώσουμε κάπου, π.χ. με ένα σχόλιο. Αυτό στην προκειμένη δεν επηρεάζει ούτε το σχήμα ούτε δημιουργεί όντως κάποια ετικέτα με κενό περιεχόμενο.

Ακόμα πιο απλό…

Το επόμενο σχήμα μας ήταν αυτό:

Μία ακόμα απλή αντανάκλαση…

Ο αντίστοιχος κώδικας:

\documentclass[tikz, margin=5mm]{standalone}
 
\begin{document}
    \begin{tikzpicture}
    \draw[dashed] (-3.99,-3.99) grid (3.99,3.99);
    \draw[thick, ->] (-4,0) -- (4,0)node[pos=1,below]{$x$};
    \draw[thick, ->] (0,-4) -- (0,4)node[pos=1,left]{$y$};
    \draw[thick, blue, domain={-3}:{3}, samples=100] plot (\x,{0.25*(abs(\x)-1)*(abs(\x)+1)*(abs(\x)+1)*(abs(\x)-3)});
    \draw[thick, dashed, domain={-2}:{3}, samples=100] plot (\x,{0.25*(\x-1)*(\x+1)*(\x+1)*(\x-3)});
    \node[circle, inner sep=1.5pt, draw=black, fill=black, label={right,yshift=8pt}:{$(3,0)$}] at (3,0){};
    \node[circle, inner sep=1.5pt, draw=black, fill=black] at (-2,3.8){};
    \node[circle, inner sep=1.5pt, draw=blue, fill=blue, label={right,yshift=8pt}:{}] at (3,0){};
    \node[circle, inner sep=1.5pt, draw=blue, fill=blue] at (-3,0){};
    \end{tikzpicture}
\end{document}

Ουδέν σχόλιο. Βασικά, έχουμε να προσθέσουμε στη λίστα με τις βασικές συναρτήσεις της plot και την απόλυτη τιμή που, όπως φαντάζεστε, είναι η συνάρτηση abs που φαίνεται αρκετές φορές παραπάνω.

Τελευταίο απλό…

Το τελευταίο σχήμα της εβδομάδας ήταν αυτό:

Φαίνεται περίπλοκο, αλλά δεν είναι!

Ο αντίστοιχος κώδικας:

\documentclass[tikz, margin=5mm]{standalone}
 
\begin{document}
    \begin{tikzpicture}
    \draw[dashed] (-3.99,-3.99) grid (3.99,3.99);
    \draw[thick, ->] (-4,0) -- (4,0)node[pos=1,below]{$x$};
    \draw[thick, ->] (0,-4) -- (0,4)node[pos=1,left]{$y$};
    \draw[thick, dashed, domain={-2}:{3}, samples=100] plot (\x,{0.25*(\x-1)*(\x+1)*(\x+1)*(\x-3)});
    \draw[thick, blue, domain={-3}:{2}, samples=100] plot (\x,{2-abs(0.25*\x*(\x+2)*(\x+2)*(\x-2))});
    \node[circle, inner sep=1.5pt, draw=black, fill=black, label={right,yshift=8pt}:{$(3,0)$}] at (3,0){};
    \node[circle, inner sep=1.5pt, draw=black, fill=black] at (-2,3.8){};
    \node[circle, inner sep=1.5pt, draw=blue, fill=blue, label={right,yshift=8pt}:{}] at (2,2){};
    \node[circle, inner sep=1.5pt, draw=blue, fill=blue] at (-3,-1.8){};
    \end{tikzpicture}
\end{document}

Φαίνεται πολύ περίπλοκο, αλλά, όπως βλέπετε, δεν είναι. Για την ακρίβεια, είναι τόσο απλό που δε θα πούμε τίποτα περισσότερο.

Αυτά ήταν τα σχήματα της προηγούμενης εβδομάδας, αρκετά απλά και λιτά. Ωστόσο από την ερχόμενη εβδομάδα θα δούμε και πιο fancy πράγματα – αρκετά – καθώς θα δούμε και τις πρώτες «σοβαρές» βιβλιοθήκες του tikz. Μέχρι τότε όμως, έχουμε λίγο καιρό!

Η κεντρική εικόνα είναι ο πίνακας Ανθισμένος Μπαξές στη Louveciennes του Camille Pissarro.

Διαβάστε επίσης: Μία γνωστή σχέση…

Ακολουθήστε το aftermathsgr στα social media:

One comment

Σχολιάστε

Εισάγετε τα παρακάτω στοιχεία ή επιλέξτε ένα εικονίδιο για να συνδεθείτε:

Λογότυπο WordPress.com

Σχολιάζετε χρησιμοποιώντας τον λογαριασμό WordPress.com. Αποσύνδεση /  Αλλαγή )

Φωτογραφία Google

Σχολιάζετε χρησιμοποιώντας τον λογαριασμό Google. Αποσύνδεση /  Αλλαγή )

Φωτογραφία Twitter

Σχολιάζετε χρησιμοποιώντας τον λογαριασμό Twitter. Αποσύνδεση /  Αλλαγή )

Φωτογραφία Facebook

Σχολιάζετε χρησιμοποιώντας τον λογαριασμό Facebook. Αποσύνδεση /  Αλλαγή )

Σύνδεση με %s