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

Αυτήν την εβδομάδα είχαμε πολύ περισσότερα πράγματα να δούμε από ότι την προηγούμενη. Για την ακρίβεια, ήρθε επιτέλους ( ; ) η ώρα να μιλήσουμε για βιβλιοθήκες του tikz. Αλλά, ας τα πάρουμε ένα-ένα…

Αν θέλετε να θυμηθείτε τι έχουμε δει τις προηγούμενες εβδομάδες, δείτε εδώ.

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

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

Συνημίτονο
Ένα καθημερινό συνημίτονο.

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

\documentclass[tikz, margin=5mm]{standalone}
 
\begin{document}
    \begin{tikzpicture}
    \draw[thick, ->] (-1,0) -- (7,0)node[pos=1,below]{$x$};
    \draw[thick, ->] (0,-2) -- (0,2)node[pos=1,left]{$y$};
    \draw[dashed] (-.99,-1.99) grid (6.99,1.99);
    \draw[thick, blue, samples=100, domain={0}:{pi}] plot (\x,{cos(\x r)});
    \draw[thick, red, samples=100, domain={pi}:{2*pi}] plot (\x,{cos(\x r)})node[right,yshift=8pt,black]{$y=\cos x$};
    \node[circle, draw=black, fill=black, inner sep=1.5pt, label={below,xshift=8pt}:{$\scriptstyle(\pi,-1)$}](a) at (pi,-1){};
    \end{tikzpicture}
\end{document}

Εδώ δεν έχουμε να σχολιάσουμε πλέον σχεδόν τίποτα – διότι, αν μη τι άλλο, έχουμε γίνει τσακάλια στη χάραξη γραφικών παραστάσεων. Βασικά, ψέματα, έχουμε να παρατηρήσουμε κάτι. Όταν σχεδιάζουμε τριγωνομετρικές συναρτήσεις – και γενικότερα, όταν τις χρησιμοποιούμε σε υπολογισμούς μας – είναι σημαντικό να προσέχουμε τις μονάδες μέτρησης. Εκ προοιμίου, το tikz χρησιμοποιεί μοίρες για να υπολογίζει γωνίες εντός των διάφορων τριγωνομετρικών συναρτήσεων. Αυτό σημαίνει ότι η έκφραση sin(1) υποδηλώνει το ημίτονο γωνίας μίας μοίρας και όχι ενός ακτινίου. Αν θέλουμε – όπως και παραπάνω – να χρησιμοποιήσουμε ακτίνια αντί για μοίρες, τότε πρέπει να το δηλώσουμε ρητά, χρησιμοποιώντας το γράμμα r στο τέλος του ορίσματος της τριγωνομετρικής συνάρτησής μας. Έτσι, αν θέλουμε να μιλήσουμε για το ημίτονο γωνίας ενός ακτινίου, γράφουμε sin(1 r). Εντάξει, όχι δα και κάτι τρελό, είναι η αλήθεια.

Η πρώτη μας βιβλιοθήκη…

… δεν είναι αυτή της Αλεξάνδρειας αλλά αυτή που φορτώνουμε στο παρακάτω σχήμα:

Παραβολή
Μία συμπαθέστατη παραβολή!

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

\documentclass[tikz, margin=5mm]{standalone}
\usepackage{xfrac}
 
\usetikzlibrary{calc}
 
\begin{document}
    \begin{tikzpicture}
    \draw[thick,->] (-1,0) -- (5,0)node[pos=1,below]{$x$};
    \draw[thick,->] (0,-3) -- (0,5)node[pos=1,left]{$y$};
    \draw[thick,domain={0}:{4},samples=100] plot (\x,{(\x-1)*(\x-4)});
    \node[circle, inner sep=1.5pt, draw=black, fill=black, label={left}:{4}](a) at (0,4){};
    \node[circle, inner sep=1.5pt, draw=black, fill=black, label={above}:{1}](b) at (1,0){};
    \node[circle, inner sep=1.5pt, draw=black, fill=black, label={above}:{4}](d) at (4,0){};
    \node[circle, inner sep=1.5pt, draw=black, fill=black](c) at (2.5,-2.25){};
    \node[above](e) at ($(0,0)!(c)!(4,0)$){$\sfrac{5}{2}$};
    \node[left](f) at ($(0,0)!(c)!(0,-3)$){$-\sfrac{9}{4}$};
    \draw[dashed] (0,0) rectangle (c);
    \end{tikzpicture}
\end{document}

Το σχήμα και τα συναφή είναι αρκετά απλά – στο κάτω-κάτω της γραφής, μία παραβολή σχεδιάσαμε. Αυτό που εδώ παρουσιάζει ενδιαφέρον είναι η χρήση της βιβλιοθήκης calc. Η εν λόγω βιβλιοθήκη είναι αρκετά μεγάλη είναι η αλήθεια, όπου το μέγεθος το μετράμε με βάση τις δυνατότητες που μας παρέχει. Όπως προδίδει και το όνομά της – μάλλον – μας βοηθά σε υπολογισμούς στο tikz μέσα στους οποίους συμπεριλαμβάνονται και γεωμετρικοί υπολογισμοί – λογικό, αφού με το tikz ζωγραφίζουμε πράγματα. Στο παραπάνω σχήμα φορτώσαμε την calc για να σχεδιάσουμε αυτές τις διακεκομμένες που φαίνονται. Ομολογουμένως, θα μπορούσαμε να τις είχαμε σχεδιάσει απλώς σχεδιάζοντας ένα ορθογώνιο από το (0,0) μέχρι το αντίστοιχο σημείο, όπως έχουμε κάνει στο παρελθόν, αλλά για κάποιον λόγο που δε θυμάμαι τώρα, έχουν σχεδιαστεί με την calc.

Τέλος πάντων, όπως και να έχει το παραπάνω σχήμα μας δίνει μία πολύ ωραία ευκαιρία να δούμε πώς μπορούμε εύκολα – πολύ εύκολα – να κάνουμε προβολές με τη βοήθεια της calc. Το βασικό συντακτικό για να προβάλλουμε έναν κόμβο x σε μία ευθεία που διέρχεται από δύο άλλους κόμβους a, b είναι το εξής:

(a)!(x)!(b)

Τόσο απλά! Με αυτόν τον τρόπο, η calc κάνει όλη τη δουλειά να υπολογίσει τις συντεταγμένες της προβολής του x στην ευθεία που καθορίζεται από τα a και b και να τις αντικαταστήσει εκεί που πρέπει, δημιουργώντας έναν νέο όμορφο κόμβο. Προσέξτε ότι πρέπει την έκφραση της προβολής που γράψαμε παραπάνω να τη βάλουμε μέσα σε δολλάρια, γράφοντας:

$(a)!(x)!(b)$

για να καταλάβει το tikz ότι πρέπει να κάνει πράξεις και να καλέσει την calc εκεί που χρειάζεται.

Το ανάποδο…

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

Παραβολή
Μία ακόμα παραβολή…

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

\documentclass[tikz, margin=5mm]{standalone}
\usepackage{xfrac}
\usetikzlibrary{calc}
 
\begin{document}
    \begin{tikzpicture}
    \draw[thick,->] (-1,0) -- (6,0)node[pos=1,below]{$x$};
    \draw[thick,->] (0,-6) -- (0,2)node[pos=1,left]{$y$};
    \draw[thick, domain={0}:{5}, samples=50] plot (\x,{-.5*(\x-2)*(\x-5)});
    \node[circle, inner sep=1.5pt, draw=black, fill=black, label={below}:{5}](a) at (5,0){};
    \node[circle, inner sep=1.5pt, draw=black, fill=black, label={below}:{2}](b) at (2,0){};
    \node[circle, inner sep=1.5pt, draw=black, fill=black, label={left}:{-5}](c) at (0,-5){};
    \node[circle, inner sep=1.5pt, draw=black, fill=black](d) at (3.5,1.125){};
    \draw[dashed] (0,0) rectangle (d);
    \node[below] at ($(-1,0)!(d)!(6,0)$){$\sfrac{7}{2}$};
    \node[left] at ($(0,-5)!(d)!(0,1)$){$\sfrac{9}{8}$};
    \end{tikzpicture}
\end{document}

Εδώ τα πράγματα είναι αρκετά παρόμοια με το προηγούμενο σχήμα – τόσο που θα μπορούσαμε να μη σχολιάσουμε τίποτα. Αλλά, επειδή δεν κρατιόμαστε, θα σχολιάσουμε κάτι – σιγά, που θα χάναμε την ευκαιρία για κουτσομπολιό. Λοιπόν, όταν θέλουμε να γράψουμε έναν δεκαδικό αριθμό στο tikz τότε χρησιμοποιούμε το σύμβολο της τελείας αντί για την ελληνική υποδιαστολή. Ωστόσο, αυτό που επίσης μπορούμε να κάνουμε, αν πρόκειται για αριθμό που είναι κατ’ απόλυτη τιμή μικρότερος του 1, είναι να παραλείψουμε το αρχικό μηδενικό αριστερά της τελείας. Έτσι, αντί για 0.56 μπορούμε να γράψουμε σκέτο .56 χωρίς να έχει κάποια διαφορά – πέρα από το ένα λιγότερο πλήκτρο που πατάμε.

Κι ένα χωρίο…

Το επόμενο σχήμα μας έχει και λίγο χρώμα:

Χωρίο ανέμεσα σε λογάριθμο και δύο εφαπτόμενες
Ένα αρκετά αιχμηρό χωρίο.

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

\documentclass[tikz, margin=5mm]{standalone}
 
\begin{document}
    \begin{tikzpicture}
    \draw[thick,->] (-1,0) -- (7,0)node[pos=1,below]{$x$};
    \draw[thick,->] (0,-3) -- (0,5)node[pos=1,left]{$y$};
    \begin{scope}
    \clip (-1,-3) rectangle (7,5);
    \draw[thick, domain={exp(-3)}:{7},samples=200] plot (\x,{ln(\x)});
    \draw[thick, domain={-1}:{7}] plot (\x,{\x-1});
    \draw[thick, domain={-1}:{7}] plot (\x,{\x/6+ln(6)-1});
    \draw[draw=blue, fill=blue, fill opacity=0.1, smooth, samples=100,domain=1:6] plot(\x,{ln(\x)}) -- (6,{ln(6)}) -- ({(6*ln(6))/5},{(6*ln(6))/5-1}) -- (1,0) -- cycle;
    \draw[dashed] (0,0) rectangle (6,{ln(6)});
    \node[below] at (6,0){$\lambda$};
    \node[above,xshift=-.7cm] at ({(6*ln(6))/5},{(6*ln(6))/5-1}){$A(x_0,y_0)$};
    \node[left] at (0,{ln(6)}){$\ln\lambda$};
    \node[below] at (1,0){1};
    \end{scope}
    \end{tikzpicture}
\end{document}

Έχουμε ξαναδεί στο παρελθόν παρόμοιο σχήμα. Όπως είχαμε επισημάνει και τότε, αν και υπάρχει η εντολή \fill για να χρωματίζουμε χωρία, μπορούμε να χρησιμοποιούμε την εντολή \draw κάνοντας την κατάλληλη παραμετροποίηση. Έτσι, μπορούμε να καθορίσουμε το πόσο διάφανο θα είναι το χρώμα του γεμίσματος μέσω της \draw απλώς προσθέτοντας την παράμετρο fill opacity στη λίστα παραμέτρων – αναλόγως, θα δούμε στο μέλλον, μπορούμε να κάνουμε και με τις περισσότερες παραμέτρους της \fill εντός της \draw.

Να παρατηρήσουμε επίσης πως όταν το πεδίο ορισμού μίας καμπύλης δεν περιλαμβάνει περίπλοκους αριθμούς – δηλαδή, δεν χρειάζονται πράξεις για να τους γράψουμε – τότε μπορούμε να παραλείψουμε τα άγκιστρα στην παράμετρο domain και να γράψουμε αντί για domain={a}:{b} απλώς domain=a:b.

Άλλο ένα χωρίο…

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

Παραβολικό χωρίο
Ένα ωραίο χωρίο ακόμα…

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

\documentclass[tikz, margin=5mm]{standalone}
\usepackage{xfrac}
 
\begin{document}
    \begin{tikzpicture}
    \draw[thick,->] (-1,0) -- (4,0)node[pos=1,below]{$x$};
    \draw[thick,->] (0,-2) -- (0,5)node[pos=1,left]{$y$};
    \draw[dashed] (0,0) rectangle (2,4);
    \begin{scope}
    \clip (-1,-2) rectangle (4,5);
    \draw[thick, domain={-1}:{4},samples=200] plot (\x,{\x*\x});
    \draw[thick, domain={1.1}:{4},samples=200] plot (\x,{4+4*ln(\x-1)});
    \draw[draw=none, fill=blue,fill opacity=0.1, smooth,samples=100,domain=0:2] plot(\x,{\x*\x}) -- (2,4) -- (1,0) -- (0,0) -- cycle;
    \draw[draw=none, fill=blue,fill opacity=0.1, smooth,samples=100,domain={1+exp(-1)}:2] plot(\x,{4+4*ln(\x-1)}) -- (2,4) -- (1,0) -- ({1+exp(-1)},0) -- cycle;
    \draw[thick,blue,domain={0}:{2},samples=200] plot(\x,{\x*\x});
    \draw[thick,blue,domain={(1+exp(-1))}:{2},samples=200] plot(\x,{4+4*ln(\x-1)});
    \draw[thick,blue] (0,0) -- ({1+exp(-1)},0);
    \node[below] at (2,0){2};
    \node[left] at (0,4){4};
    \node[below,xshift=-.7cm] at ({1+exp(-1)},0){$1+\sfrac{1}{e}$};
    \end{scope}
    \end{tikzpicture}
\end{document}

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

Οι διάφορες μονάδες μέτρησης.

Ένα δέντρο…

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

Δέντρο σχετικό με την εικασία Collatz
Ένα δέντρο όχι σαν τα άλλα, τα πράσινα…

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

\documentclass[tikz, margin=5mm]{standalone}
\usepackage{xfrac} % You know, only for the fancy inline fractions.
 
\begin{document}
    \begin{tikzpicture}
    \node[circle, minimum size=.9cm, draw=black](1) at (0,0){1};
    \node[circle, minimum size=.9cm, draw=black](2) at (2,0){2};
    \node[circle, minimum size=.9cm, draw=black](4) at (4,0){4};
    \node[circle, minimum size=.9cm, draw=black](8) at (6,0){8};
    \node[circle, minimum size=.9cm, draw=black](16) at (8,0){16};
    \node[circle, minimum size=.9cm, draw=black](32) at (10,0){32};
    \node[circle, minimum size=.9cm, draw=black](5) at (10,2){5};
    \node[circle, minimum size=.9cm, draw=black](10) at (12,2){10};
    \node[circle, minimum size=.9cm, draw=black](20) at (14,2){20};
    \node[circle, minimum size=.9cm, draw=black](3) at (14,4){3};
    \node[circle, minimum size=.9cm, draw=black](64) at (12,0){64};
    \node[circle, minimum size=.9cm, draw=black](128) at (14,0){128};
    \node[circle, minimum size=.9cm, draw=black](21) at (14,-2){21};
    \draw[thick, ->] (1) -- (2);
    \draw[thick, ->] (2) -- (4);
    \draw[thick, ->] (4) -- (8);
    \draw[thick, ->] (8) -- (16);
    \draw[thick, ->] (16) -- (32);
    \draw[thick, ->] (32) -- (64);
    \draw[thick, ->] (64) -- (128);
    \draw[thick, ->] (64) -- (21);
    \draw[thick, ->] (5) -- (10);
    \draw[thick, ->] (10) -- (20);
    \draw[thick, ->] (10) -- (3);
    \draw[thick, ->] (16) -- (5);
    \end{tikzpicture}
\end{document}

Η αλήθεια είναι ότι σε ό,τι έχει να κάνει με τη δομή του παραπάνω σχήματος τα πράγματα είναι σχετικά απλά. Σχεδιάσαμε κάποιους κόμβους και τους ενώσαμε με βελάκια. Ωστόσο, έχουμε μία νέα παράμετρο που δεν έχουμε δει έως τώρα και η οποία σχετίζεται με το μέγεθος των κόμβων. Αν παρατηρήσετε τους κόμβους που έχουμε σχεδιάσει, θα δείτε ότι σε όλους έχουμε γράψει το εξής:

minimum size=.9cm

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

Αυτά ήταν τα υπέροχα σχήματα αυτής της εβδομάδας – μετριοπάθεια πάνω απ’ όλα. Μέχρι την επόμενη Τρίτη, καλή συνέχεια!

Για τις υπόλοιπες αναρτήσεις της σειράς, δείτε εδώ.

Η κεντρική εικόνα είναι ο πίνακας Η συγκομιδή των σταχυών του Camille Pissarro.

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

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

One comment

Σχολιάστε

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

Λογότυπο WordPress.com

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

Φωτογραφία Google

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

Φωτογραφία Twitter

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

Φωτογραφία Facebook

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

Σύνδεση με %s