Σελίδα 1 από 1

Tikz και \foreach

Δημοσιεύτηκε: Σάβ Οκτ 26, 2019 9:40 pm
από Tolaso J Kos
Ας υποθέσουμε ότι θέλω να φτιάξω το παρακάτω.

\displaystyle{\begin{tikzpicture}   	   
\draw[->, line width=1.6pt] (-7.3, 0) -- (7, 0); 
\foreach \i in {-7,-6, -5, -4, -3, -2, -1, 1,2, 3, 4,5, 6} 
    	    { 
    	  	  \draw (\i, 0) node[below]{\i}; 
    	    }  
\end{tikzpicture}}
Χρησιμοποιώ την εντολή

Κώδικας: Επιλογή όλων

\foreach \i in {-7,-6, -5, -4, -3, -2, -1, 1,2, 3, 4,5, 6}
{
  %code to be executed
}

Αν χρησιμοποιήσω όμως την εντολή

Κώδικας: Επιλογή όλων

\foreach \i in {-7,..., -1, 1, ..., 6}
{
  %code to be executed
}

τότε παίρνω αυτό

\displaystyle{\begin{tikzpicture}   	   
\draw[->, line width=1.6pt] (-7.3, 0) -- (7, 0); 
\foreach \i in {-7,..., -1, 1, ..., 6} 
    	    { 
    	  	  \draw (\i, 0) node[below]{\i}; 
    	    }  
\end{tikzpicture}}
ενώ αν προσθέσω και ένα 2 τότε παίρνω το σωστό αποτέλεσμα.

\displaystyle{\begin{tikzpicture}   	   
\draw[->, line width=1.6pt] (-7.3, 0) -- (7, 0); 
\foreach \i in {-7,..., -1, 1, 2 ,  ..., 6} 
    	    { 
    	  	  \draw (\i, 0) node[below]{\i}; 
    	    }  
\end{tikzpicture}}
Το ερώτημα είναι γιατί;

Re: Tikz και \foreach

Δημοσιεύτηκε: Κυρ Οκτ 27, 2019 7:30 pm
από grigkost
Tolaso J Kos έγραψε:
Σάβ Οκτ 26, 2019 9:40 pm
...Το ερώτημα είναι γιατί;
Απάντηση: Γιατί είναι "έξυπνο"!

Το -1 εκλαμβάνεται ως το τέλος της πρώτης ακολουθίας με βήμα 1. Του "λες" να αγνοήσει το 0 και να αρχίσει με το 1 άλλη ακολουθία. Αλλά τώρα θέλει να του δώσεις και βήμα. π.χ. ο

Κώδικας: Επιλογή όλων

\foreach \i in {-7,..., -1,1, 3,..., 7}
θα εμφανίσει από το -7 ως το -1 όλες τις μονάδες ενώ από το 1 ως το 7 το βήμα θα είναι 2.

ο

Κώδικας: Επιλογή όλων

\foreach \i in {-7,..., -1, 0,2,..., 8}
συμπεριλαμβάνει και το 0, ενώ ο

Κώδικας: Επιλογή όλων

\foreach \i in {-7,..., -1, 0.0,0.5,..., 7.0, 8,9,..., 12}
....

Re: Tikz και \foreach

Δημοσιεύτηκε: Κυρ Οκτ 27, 2019 7:37 pm
από Tolaso J Kos
grigkost έγραψε:
Κυρ Οκτ 27, 2019 7:30 pm
Tolaso J Kos έγραψε:
Σάβ Οκτ 26, 2019 9:40 pm
...Το ερώτημα είναι γιατί;
Απάντηση: Γιατί είναι "έξυπνο"!
:lol: :lol: :lol: :clap2: :clap2:

Ευχαριστώ.