matematica e tikz

  • Creatore
    Topic
  • #93375
    Up
    0
    Down
    ::


    Buonasera,

    ho un problemino con [tt]tikz[/tt] che, sarà la stanchezza, non riesco a risolvere:
    Ho due cicli for ([tt]foreach[/tt]) uno dentro l’altro. Quello interno deve far scorre la variabile da 1 fino a un valore che dipende dalla variabile del ciclo esterno. Il problema è che così`\foreach \j in {1,…,5} {%
    \foreach \i in {1,…,2^(\j+1)} {%

    }
    }`non funziona e mi da errore perché [tt]tikz[/tt] non permette di fare conti nell’assegnazione del valore di [tt]\i[/tt].
    Una soluzione che ho pensato ma che non so mettere in pratica è quella di dichiarare una nuova variabile con un certo valore, per esempio`\foreach \j in {1,…,5} {%
    \k = 2^(\j+1)
    \foreach \i in {1,…,\k} {%

    }
    }`
    Ma non ho trovato la sintassi da utilizzare e poi temo che anche inserendo [tt]\k[/tt] in [tt]\foreach \i in {1,…,\k}[/tt] otterrei degli errori.

    Avete qualche idea?

    Ciao
    Marco

Visualizzazione 1 filone di risposte
  • Autore
    Risposte
    • #93376
      Up
      0
      Down
      ::

      marchetto” post=92992Buonasera,

      ho un problemino con [tt]tikz[/tt] che, sarà la stanchezza, non riesco a risolvere:
      Ho due cicli for ([tt]foreach[/tt]) uno dentro l’altro. Quello interno deve far scorre la variabile da 1 fino a un valore che dipende dalla variabile del ciclo esterno. Il problema è che così`\foreach \j in {1,…,5} {%
      \foreach \i in {1,…,2^(\j+1)} {%

      }
      }`non funziona e mi da errore perché [tt]tikz[/tt] non permette di fare conti nell’assegnazione del valore di [tt]\i[/tt].
      Una soluzione che ho pensato ma che non so mettere in pratica è quella di dichiarare una nuova variabile con un certo valore, per esempio`\foreach \j in {1,…,5} {%
      \k = 2^(\j+1)
      \foreach \i in {1,…,\k} {%

      }
      }`
      Ma non ho trovato la sintassi da utilizzare e poi temo che anche inserendo [tt]\k[/tt] in [tt]\foreach \i in {1,…,\k}[/tt] otterrei degli errori.

      Avete qualche idea?

      Ciao
      Marco

      Ci sei quasi.

      TikZ per via di LaTeX non può definire delle variabili con una sintassi simile ad altri linguaggi di programmazione. Il modo corretto è:`
      \pgfmathsetmacro\k{2^(\j+1)}
      `Quindi: `
      \documentclass[tikz]{standalone}

      \begin{document}
      \begin{tikzpicture}
      \foreach \j in {1,…,5} {%
      \pgfmathsetmacro\k{2^(\j+1)}
      \foreach \i in {1,…,\k} {%
      \node[fill] at (\i,\j){};
      }
      }
      \end{tikzpicture}
      \end{document}
      ` funziona alla grande. In modo più elegante, puoi ridefinire anche il primo ciclo con: `
      \foreach \j [evaluate=\j as \k using 2^(\j+1)] in {1,…,5} {%
      `

      Ciao
      Claudio

    • #93377
      Up
      0
      Down
      ::


      ora tutto funziona 🙂
      Ieri sera avevo cercato un comando simile ma ero riuscito solo a perdermi dentro alle mille e più pagine del manuale. Ora, con i capitolo 89 e 90 ho scoperto un nuovo mondo.

      Grazie!

      Ciao
      Marco

Visualizzazione 1 filone di risposte
  • Devi essere connesso per rispondere a questo topic.

Go to top