Re: Animazione tikz

#86406
Up
0
Down
::

DirkPitt” post=85996

[quote=”DirkPitt” post=85988]Grazie Marco i tuoi suggerimenti mi sono stati utilissimi come anche il tuo esempio.

Al momento non riesco a fare però una prova “seria” perchè nel mio file devi scrivere 3 array di dati numerici e poi utilizzarli nel for.

Cioè io ho dei dati come questi

`
%x1
25.000 24.965 24.933 24.902 24.873 24.843 24.814 24.785 24.756 24.727

%x2
5.000 5.035 5.072 5.112 5.152 5.192 5.233 5.274 5.314 5.355

%x3
2.35619 2.27633 2.23351 2.21078 2.19881 2.19255 2.18930 2.18762 2.18676 2.18633
`

Le coppie (x1,x2) rappresentano il centro del piccolo cerchio che devo disegnare in ogni “subfigure” dell’animazione. Quindi nel ciclo for devo accedere agli elementi degli array in questione, ma non so come farlo (a livello sintattico del codice).
La x3 serve per calcolarmi l’angolazione dell asse delle ruote, ma se non riesco ve lo chiedo + avanti 🙂

Ringrazio anche gli altri per il loro aiuto, ciao

EDIT:
Rileggendo mi viene da pensare che non sono stato chiarissimo. Ciò che mi serve è la sintassi per definire array in latex e per accedere agli elementi. Ad esempio in java farei

int lunghezza=3;
double vett = {0.5, 0.4, 0.6}
for n=0; n

Così:`\documentclass{beamer}

\usepackage{tikz}
% Daniel's code:
% http://tex.stackexchange.com/questions/55806/tikzpicture-in-beamer/55827#55827
\tikzset{
invisible/.style={opacity=0},
visible on/.style={alt=#1{}{invisible}},
alt/.code args={<#1>#2#3}{%
\alt<#1>{\pgfkeysalso{#2}}{\pgfkeysalso{#3}} % \pgfkeysalso doesn't change the path
},
}

\begin{document}
\begin{frame}{Titolo}
\begin{tikzpicture}
\foreach \pos[count=\xi] in {{(25,5)},{(24.965,5.035)},{(24.933,5.072)},{(24.902,5.112)}}{
\node[draw,red,circle,visible on=<\xi>]at \pos {};
}
\end{tikzpicture}
\end{frame}
\end{document}` Attenzione: il contatore, \xi in questo esempio deve essere un valore intero e non troncato. Lo dico già ora perché io ho usato il count per semplicità, ma per cose più complesse è meglio definirsi a parte una macro. A quel punto se la definisci male, TikZ ti ritornerà dei valori .0 dove il .0 è un angolo e tutto il meccanismo va a arotoli.

Ciao
Claudio

Ti ringrazio per l’esempio, ma non esiste un modo per definirsi gli array e poi accedervi? Io nello stesso ciclo for ho bisogno di accedere anche all’elemento in posizione “pos” anche di x3, per decidere con quale angolo rispetto all’orizzontale devo disegnare un segmento all interno del cerchio. Sto vedendo il pacchetto arrayjob per ora, http://www.ctan.org/tex-archive/macros/generic/arrayjobx

Ciao[/quote]
Beh certo che esiste un modo per definire array eccetera, ma credo tu ti stia complicando la vita inutilmente. Devi aggiungere il parametro x3? Cambia il ciclo:`
\foreach \pos/\parametrox3[count=\xi] in {{(25,5)}/0,{(24.965,5.035)/0},{(24.933,5.072)/0},{(24.902,5.112)/0}}
` e poi potrai usare \pos e \parametrox3 come meglio credi (io sulla storia degli angoli passo: non ho capito cosa devi fare e come si potrebbe fare).

Ora, invece, per complicarti la vita, ti allego qualche collegamento su come implementare delle liste: Enrico ti direbbe di usare LaTeX3, ne sono sicuro :wink:, ma ci sono anche altri modi. Una bella carrellata, è un esempio indiretto, ma il messaggio è facile da cogliere, la trovi qui (in particolare guarda con attenzione la risposta di Andrew). In realtà pgfplots se non ricordo male ha un suo modo per gestire le liste, ma non ci ho mai fatto troppo caso. Infine, esiste anche questa possibilità che non è male.

Ciao
Claudio

Go to top