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

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

Μετατοπίσεις…

Το πρώτο σχήμα μας ήταν το εξής:

Κατακόρυφη μετατόπιση
Κατακόρυφη μετατόπιση

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

\documentclass[tikz, margin=5mm]{standalone}
\usepackage{ifthen}
 
\usetikzlibrary{intersections}
 
\begin{document}
    \begin{tikzpicture}
    \draw[thick,->,name path=x axis] (-4,0) -- (4,0)node[pos=1,below]{$x$};
    \draw[thick,->,name path=y axis] (0,-2.5) -- (0,3)node[pos=1,left]{$y$};
    \node[left,yshift=-8pt](O) at (0,0){$O$};
    \begin{scope}
    \clip (-5,-3) rectangle (5,3.3);
    \draw[very thick, name path=curve 1, red] (-3,-2) .. controls (-1,3) and (2,-3) .. (3,0)node[pos=.8,below]{$f(x)+c,\ c<0$};
    \draw[name path=curve 2, blue!50!black] (-3,-1) .. controls (-1,4) and (2,-2) .. (3,1)node[pos=1,right]{$f$};
    \draw[very thick, name path=curve 3, green!40!black] (-3,.5) .. controls (-1,5.5) and (2,-.5) .. (3,2.5)node[pos=1,above]{$f(x)+c,\ c>0$};
    \foreach \i in {-3,...,3}{
        \draw[draw=none, name path=line \i] (\i,-4) -- (\i,4);
        \node[inner sep=0pt, outer sep=0pt, name intersections={of={curve 1 and line \i}}](A\i) at (intersection-1){};
        \node[inner sep=0pt, outer sep=0pt, name intersections={of={curve 2 and line \i}}](B\i) at (intersection-1){};
        \node[inner sep=0pt, outer sep=0pt, name intersections={of={curve 3 and line \i}}](C\i) at (intersection-1){};
        \ifthenelse{\i=-3}{
            \draw[orange, <->] (A\i) -- (B\i)node[pos=.5,left]{$c$};
            \draw[orange, <->] (B\i) -- (C\i)node[pos=.5,left]{$c$};
        }
        {
            \draw[orange, <->] (A\i) -- (B\i)node[pos=.5,right]{$c$};
            \draw[orange, <->] (B\i) -- (C\i)node[pos=.5,right]{$c$};
        }
    }
    \end{scope}
    \end{tikzpicture}
\end{document}

Αυτό θυμίζει σε έναν ικανοποιητικό βαθμό ένα σχήμα που είχαμε δει την προηγούμενη εβδομάδα. Αρχικά, σχεδιάζουμε τρεις καμπύλες Bézier με τον γνωστό τρόπο. Όπως έχουμε πει, οι γεωμετρικοί μετασχηματισμοί τέτοιων καμπύλων είναι ιδιαίτερα εύκολοι, αφού ανάγονται στους αντίστοιχους γεωμετρικούς μετασχηματισμούς των σημείων ελέγχου τους. Έτσι, στο παραπάνω, έχοντας σχεδιάσει τη μία από τις τρεις καμπύλες μας, μπορούμε εύκολα να πάρουμε τις άλλες δύο απλώς μετατοπίζοντας όλα τα σημεία ελέγχου κατά μία σταθερά προς τα πάνω ή προς τα κάτω, αντίστοιχα.

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

\draw[draw=none, name path=line \i] (\i,-4) -- (\i,4);

Έπειτα, βρίσκουμε τα σημεία τομής κάθε τέτοιας ευθείας με τις τρεις καμπύλες μας και τα «αποθηκεύουμε» σε τρεις κόμβους – όπως έχουμε πει, αυτό είναι απαραίτητο αν θέλουμε να τα χρησιμοποιήσουμε και σε μελλοντικές κατασκευές και όχι μόνο μία φορά στο σχήμα μας:

\node[inner sep=0pt, outer sep=0pt, name intersections={of={curve 1 and line \i}}](A\i) at (intersection-1){};
\node[inner sep=0pt, outer sep=0pt, name intersections={of={curve 2 and line \i}}](B\i) at (intersection-1){};
\node[inner sep=0pt, outer sep=0pt, name intersections={of={curve 3 and line \i}}](C\i) at (intersection-1){};

Όπως έχουμε επισημάνει και στο παρελθόν, είναι σημαντικό όταν ένας κόμβος θέλουμε να είναι εκεί αλλά να μην… υπάρχει, πρέπει να θέσουμε τις τιμές των inner sep και outer sep στο 0, ειδάλλως κάθε γραμμή ή σχήμα που καταλήγει σε αυτούς θα απέχει λίγο από τη θέση του ίδιου του κόμβου. Εναλλακτικά, μπορούμε αντί για κόμβους να χρησιμοποιούμε coordinates που δεν έχουν αυτόν τον περιορισμό.

Στη συνέχεια, χρησιμοποιώντας τους παραπάνω κόμβους σχεδιάζουμε με το στυλ που θέλουμε κάθε φορά τις ευθείες ανάμεσα στις καμπύλες μας:

\ifthenelse{\i=-3}{
    \draw[orange, <->] (A\i) -- (B\i)node[pos=.5,left]{$c$};
    \draw[orange, <->] (B\i) -- (C\i)node[pos=.5,left]{$c$};
}
{
    \draw[orange, <->] (A\i) -- (B\i)node[pos=.5,right]{$c$};
    \draw[orange, <->] (B\i) -- (C\i)node[pos=.5,right]{$c$};
}

Στο παραπάνω, χρειαστήκαμε μία δομή επιλογής \ifthenelse για να τοποθετήσουμε τις ετικέτες των δύο πιο αριστερών γραμμών μας από τα αριστερά και όχι από τα δεξιά τους – γιατί από τα δεξιά δεν φαίνονται τόσο ωραίες, μιας και επικαλύπτουν άλλα υπάρχοντα σχήματα.

Αντίστροφη συνάρτηση

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

Συμμετρία γραφικής παράστασης αντίστροφης
Μία συνάρτηση και η αντίστροφή της

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

\documentclass[tikz, margin=5mm]{standalone}
\usepackage{ifthen}
 
\usetikzlibrary{calc}
\usetikzlibrary{intersections}
 
\begin{document}
    \begin{tikzpicture}
    \draw[thick,->,name path=x axis] (-4,0) -- (4,0)node[pos=1,below]{$x$};
    \draw[thick,->,name path=y axis] (0,-3.5) -- (0,3.8)node[pos=1,left]{$y$};
    \node[left,yshift=-8pt](O) at (0,0){$O$};
    \draw[thick, red!75!black, name path=inverse] (-2,3) .. controls (-2,.3) and (2.2,.2) ..(2.2,-3)node[right]{$f^{-1}$};
    \draw[thick, blue!75!black, name path=curve] (-3,2.2) .. controls (.2,2.2) and (.3,-2) .. (3,-2)node[below]{$f$};
    \draw[purple!75!black, name path=bisectrix] (-3,-3) -- (3,3)node[pos=1,above]{$y=x$};
    \draw[draw=none, domain={-3}:{3}, name path=line] plot(\x,{.65-\x});
    \node[circle, fill=green!40!black, inner sep=1pt, name intersections={of={curve and line}}, label={right,yshift=8pt}:{$\textcolor{blue!75!black}{(x,f(x))}$}](A) at (intersection-1){};
    \node[circle, fill=green!40!black, inner sep=1pt, name intersections={of={inverse and line}}, label={left}:{$\textcolor{red!75!black}{(x,f^{-1}(x))}$}](B) at (intersection-1){};
    \draw[orange,<->] (A) -- (B);
    \draw[draw=none, name path=x] (A) -- ($(-4,4)!(A)!(4,4)$);
    \draw[draw=none, name path=y] (B) -- ($(4,-4)!(A)!(4,-4)$);
    \node[circle, fill=green!40!black, inner sep=1pt, name intersections={of={x and bisectrix}}, label={right}:{$\textcolor{purple!75!black}{(x,x)}$}](C) at (intersection-1){};
    \draw[orange,->] (A) -- (C);
    \draw[orange,->] (C) -- (B);
    \end{tikzpicture}
\end{document}

Και σε αυτήν την περίπτωση δε βλέπουμε πράγματα που δεν έχουμε ξαναδεί καθόλου. Σχεδιάζουμε δύο καμπύλες και με διάφορες πράξεις μεταξύ τους βρίσκουμε τα σημεία τομής τους και σχεδιάζουμε τις ευθείες που θέλουμε μεταξύ τους. Αυτό που παρουσιάζει ιδιαίτερο ενδιαφέρον στο παραπάνω είναι πώς μπορούμε να πάρουμε τη συμμετρική μίας καμπύλης Bézier ως προς την διχοτόμο y=x. Ας πάρουμε πρώτα τις δύο εκφράσεις κι ας τις παρατηρήσουμε:

\draw[thick, blue!75!black, name path=curve] (-3,2.2) .. controls (.2,2.2) and (.3,-2) .. (3,-2)node[below]{$f$};

Η αντίστροφή της, όπως προδίδει και το παραπάνω σχήμα, είναι η εξής:

\draw[thick, red!75!black, name path=inverse] (-2,3) .. controls (-2,.3) and (2.2,.2) ..(2.2,-3)node[right]{$f^{-1}$};

Αν παρατηρήσετε προσεκτικά, θα δείτε ότι για να καθορίσουμε τα σημεία ελέγχου της συμμετρικής ως προς την y=x μίας καμπύλης Bézier, αυτό που έχουμε να κάνουμε δεν είναι παρά να διαβάσουμε τα σημεία ελέγχου της εντελώς… ανάποδα. Πράγματι, αν ξεκινήσετε από το τελευταίο σημείο της πρώτης καμπύλης κι αρχίσετε να το διαβάζετε «αραβικά» θα δείτε ότι προκύπτουν ένα προς ένα όλα τα σημεία ελέγχου της συμμετρικής της. Αυτό είναι λογικό και αναμενόμενο για δύο λόγους:

  • αφενός, οι καμπύλες Bézier καθορίζονται από ένα παραλληλόγραμμο – ή, γενικότερα, κάποιο πολύγωνο – για το οποίο θα μιλήσουμε αναλυτικότερα στο μέλλον και,
  • αφετέρου, το συμμετρικό ενός σημείο M(a,b) ως προς τη διχοτόμο y=x είναι το σημείο N(b,a).

Με βάση τα δύο παραπάνω, πράγματι, προκύπτει εύκολα ότι τα σημεία ελέγχου της «αντίστροφης» είναι αυτά της πρώτης καμπύλης αν διαβαστούν από τα δεξιά προς τα αριστερά.

Αλυσίδες…

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

Αλυσοειδές
Αλυσίδες…

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

\documentclass[tikz, margin=5mm]{standalone}
\usepackage{ifthen}
 
\usetikzlibrary{intersections}
 
\begin{document}
    \begin{tikzpicture}
    \\draw[thick,->,name path=x axis] (-4,0) -- (4,0)node[pos=1,below]{$x$};
    \draw[thick,->,name path=y axis] (0,-1) -- (0,6)node[pos=1,left]{$y$};
    \node[above](A) at (-2,4) {$A$};
    \node[above](B) at (2,4) {$B$};
    \node[below] at (2,0) {$2$};
    \node[below] at (-2,0) {$-2$};
    \node[left,yshift=.5em] at (0,4) {$4$};
    \draw[dashed] (0,0) rectangle (-2,4);
    \draw[dashed] (0,0) rectangle (2,4);
    \foreach \a in {0.9,1,1.2}{
        \pgfmathsetmacro{\res}{\a+4-\a*cosh(2/\a)};
        \draw[thick, domain=-2:2, samples=200] plot(\x,{\a*cosh(\x/\a)+4-\a*cosh(2/\a)});
        \node[yshift=.8em,xshift=0em] at (0,\res) {\scalebox{.65}{$\hphantom{\a}a=\a\hphantom{a}$}};
    }
    \end{tikzpicture}
\end{document}

Στο παραπάνω δεν έχουμε κάτι το ιδιαίτερο, πέρα ίσως από το πώς έχουμε τοποθετήσει τις ετικέτες πάνω στις καμπύλες. Αρχικά, για να τις φέρουμε στο επιθυμητό μέγεθος έχουμε χρησιμοποιήσει την εντολή \scalebox η οποία, όπως προδίδει και το όνομά της, μετασχηματίζει ως προς την κλίμακα ένα σχήμα – βασικά, ένα «κουτί», πιο σωστά. Το γενικό συντακτικό είναι:

\scalebox{...}{...}

Σαν πρώτη παράμετρο δίνουμε έναν πραγματικό αριθμό – κατά προτίμηση θετικό – που καθορίζει το ποσοστό του αρχικού μεγέθους του σχήματος που θέλουμε να διατηρήσουμε, ενώ στο δεύτερο όρισμα δίνουμε ο,τιδήποτε θέλουμε να του αλλάξουμε το μέγεθος. Έτσι, αν στο πρώτο όρισμα δώσουμε 0,89 και στο δεύτερο ένα σχήμα σχεδιασμένο με το tikz τότε θα πάρουμε ένα σχήμα και πάλι, αλλά στο 89% του αρχικού του μεγέθους. Αντίστοιχα, αν ως πρώτο όρισμα δώσουμε 1,56 και ως δεύτερο μία παράγραφο, τότε αυτό που θα πάρουμε θα είναι η παράγραφος στο 156% του αρχικού της μεγέθους.

Αυτά ήταν τα σχήματά μας και γι’ αυτήν την εβδομάδα! Μέχρι την επόμενη, νά’ στε καλά!

Η κεντρική εικόνα είναι ο πίνακας Ένα βάζο λουλούδια και μία κούπα καφέ του Henri Fantin-Latour.

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

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

Σχολιάστε

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

Λογότυπο WordPress.com

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

Φωτογραφία Google

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

Φωτογραφία Twitter

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

Φωτογραφία Facebook

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

Σύνδεση με %s